Mmm, I'm not sure what's going wrong, but as you pointed it's a problem with the value of ivy.revision variable. The value of this variable should come from the info/@revision value in your ivy file, and defaults to working@<hostname> when none is provided. But for a publish to fail with the exception you have, it's probably because the value of this attribute changes between your call to resolve (which actually generates the resolved-xxx.xml file in your cache) and your call to publish. Maybe you do a deliver directly on the ivy file used to resolve? Xavier
On Mon, Sep 15, 2008 at 6:41 PM, Paulo Santos <[EMAIL PROTECTED]>wrote: > Just adding some more information, > > the first time I run ProjectFoo, it works because ivy places my Host Name > as > the ivy.revision attribute, thus fiding the " > [EMAIL PROTECTED]", the second time I > run, Ivy places as the ivy.revision attribute the value 1.0-alpha1, > consequently looking for > /home/deco/.ivy2/cache/resolved-info.projects-ProjectFoo-1.0-alpha1.xml, > obviously not finding (the file in cache is the one in red above). > > Here the first run (,successful): > > ================ Log with -debug =============== > > riding previous definition of property "ivy.version" > Setting project property: ivy.version -> 2.0.0-rc1-local-20080915151600 > [ivy:publish] parameter found as attribute value: > ivy.organisation=info.projects > [ivy:publish] parameter found as attribute value: ivy.module=ProjectFoo > [ivy:publish] parameter found as attribute value: > [EMAIL PROTECTED] * // First time it uses the Host Name* > [ivy:publish] parameter not found: ivy.deliver.branch > [ivy:publish] parameter found as attribute value: > ivy.deliver.revision=1.0-alpha1 > [ivy:publish] parameter found as attribute value: > > ivy.deliver.ivy.pattern=/home/deco/workspace/ProjectFoo/dist/[artifact].[ext] > [ivy:publish] parameter found as attribute value: ivy.status=release > [ivy:publish] parameter not found: ivy.delivery.list.file > +Task: property > [property] Loading /tmp/delivery.properties > [property] Unable to find property file: /tmp/delivery.properties > :: delivering :: info.projects#ProjectFoo;[EMAIL PROTECTED] :: 1.0-alpha1 :: > release :: Mon Sep 15 16:14:15 GMT 2008 > delivering ivy file to /home/deco/workspace/ProjectFoo/dist/ivy.xml > :: publishing :: info.projects#ProjectFoo > Publishing from /home/deco/workspace/ProjectFoo/dist/project-foo-linux.zip > to > > https://195.227.0.189/svn/deco/shared/info.projects/ProjectFoo/1.0-alpha1/zips/project-foo-linux.zip > Added folder: r1954 by 'ivy' at Mon Sep 15 16:12:34 GMT 2008 > Added folder: r1955 by 'ivy' at Mon Sep 15 16:12:35 GMT 2008 > Publishing from /tmp/ivytemp64349sha1 to > > https://195.227.0.189/svn/deco/shared/info.projects/ProjectFoo/1.0-alpha1/zips/project-foo-linux.zip.sha1 > Publishing from /tmp/ivytemp64351md5 to > > https://195.227.0.189/svn/deco/shared/info.projects/ProjectFoo/1.0-alpha1/zips/project-foo-linux.zip.md5 > published project-foo-linux to > > https://195.227.0.189/svn/deco/shared/info.projects/ProjectFoo/1.0-alpha1/zips/project-foo-linux.zip > Publishing from > /home/deco/workspace/ProjectFoo/dist/project-foo-windows.zip > to > > https://195.227.0.189/svn/deco/shared/info.projects/ProjectFoo/1.0-alpha1/zips/project-foo-windows.zip > Publishing from /tmp/ivytemp64354sha1 to > > https://195.227.0.189/svn/deco/shared/info.projects/ProjectFoo/1.0-alpha1/zips/project-foo-windows.zip.sha1 > Publishing from /tmp/ivytemp64356md5 to > > https://195.227.0.189/svn/deco/shared/info.projects/ProjectFoo/1.0-alpha1/zips/project-foo-windows.zip.md5 > published project-foo-windows to > > https://195.227.0.189/svn/deco/shared/info.projects/ProjectFoo/1.0-alpha1/zips/project-foo-windows.zip > Publishing from /home/deco/workspace/ProjectFoo/dist/ivy.xml to > > https://195.227.0.189/svn/deco/shared/info.projects/ProjectFoo/1.0-alpha1/ivys/ivy.xml > Added folder: r1962 by 'ivy' at Mon Sep 15 16:12:48 GMT 2008 > Publishing from /tmp/ivytemp64359sha1 to > > https://195.227.0.189/svn/deco/shared/info.projects/ProjectFoo/1.0-alpha1/ivys/ivy.xml.sha1 > Publishing from /tmp/ivytemp64361md5 to > > https://195.227.0.189/svn/deco/shared/info.projects/ProjectFoo/1.0-alpha1/ivys/ivy.xml.md5 > published ivy to > > https://195.227.0.189/svn/deco/shared/info.projects/ProjectFoo/1.0-alpha1/ivys/ivy.xml > [echo] project Project - Foo - Release released with version 1.0-alpha1 > [antcall] Exiting /home/deco/workspace/ProjectFoo/build.xml. > BUILD SUCCESSFUL > Total time: 1 minute 4 seconds > > On Fri, Sep 12, 2008 at 4:28 PM, Paulo Santos <[EMAIL PROTECTED] > >wrote: > > > Hello all, > > > > I'm having trouble with ivy files in cache. Ivy looks for an ivy file in > > cache with the pattern "resolved-<organisation>-<module>-<revision>.xml" > > when publishing. > > > > Now, data from two projects, ProjectBar works, while ProjectFoo doesn't. > > > > In the successful project (ProjectBar), publishing finds the file. Here > is > > the debug output: > > > > Overriding previous definition of property "ivy.revision" > > Setting project property: ivy.revision -> 1.0-dev-b4 > // > > Current version > > Setting project property: ivy.new.revision -> 1.0-dev-b5 > // > > New version > > Setting project property: ivy.build.number -> 4 > > Setting project property: ivy.new.build.number -> 5 > > version: > > [property] Loading > > /home/deco/workspace/ProjectBar/build/classes/ProjectBar.properties > > Setting project property: version -> 1.0-dev-b5 > > publish-no-test: > > [ivy:publish] parameter found as ivy variable: > > ivy.organisation=info.projects > > [ivy:publish] parameter found as ivy variable: > > ivy.module=ProjectBar > > [ivy:publish] parameter found as ivy variable: > > [EMAIL PROTECTED] // Hey!! How is my host name as the > > old revision??? > > [ivy:publish] parameter found as attribute value: > > ivy.deliver.revision=1.0-dev-b5 > > [ivy:publish] parameter found as attribute value: > > ivy.status=release > > [ivy:publish] parameter found as attribute value: > > ivy.organisation=info.projects > > [ivy:publish] parameter found as attribute value: > > ivy.module=ProjectBar > > [ivy:publish] parameter found as attribute value: > > [EMAIL PROTECTED] // Really don't get it! > > [ivy:publish] parameter found as attribute value: > > ivy.deliver.revision=1.0-dev-b5 > > [ivy:publish] parameter found as attribute value: > > > ivy.deliver.ivy.pattern=/home/deco/workspace/ProjectBar/dist/[artifact].[ext] > > [ivy:publish] parameter found as attribute value: > > ivy.status=release > > [ivy:publish] parameter not found: ivy.delivery.list.file > > +Task: property > > [property] Loading /tmp/delivery.properties > > [property] Unable to find property file: > /tmp/delivery.properties > > [ivy:publish] :: delivering :: > > info.projects#ProjectBar;[EMAIL PROTECTED] :: 1.0-dev-b5 :: release :: Thu > > Sep 11 16:15:23 GMT 2008 > > [ivy:publish] options = status=release pubdate=Thu Sep 11 > > 16:15:23 GMT 2008 validate=true resolveDynamicRevisions=true > resolveId=null > > > > ... > > > > Ok, really didn't quite understand, but actually works because all ivy > > files with the 'resolved' prefix that are written to my cache, have as > > revision my host name "[EMAIL PROTECTED]"; so ivy is able to find the > > file "[EMAIL PROTECTED]". > > > > In the second project (ProjectFoo) ivy doesn't find the file, here the > > debug output: > > > > Overriding previous definition of property "ivy.revision" > > Setting project property: ivy.revision -> 1.0-alpha1 > // > > OK, current version > > Setting project property: ivy.new.revision -> 1.0-alpha2 > // > > New version, so far so good. > > Setting project property: ivy.build.number -> 1 > > Setting project property: ivy.new.build.number -> 2 > > version: > > [property] Loading > > /home/deco/workspace/ProjectFoo/dist/ProjectFoo.properties > > Setting project property: version -> 1.0-alpha2 > > publish: > > [echo] /home/deco/workspace/ProjectFoo/dist > > [ivy:publish] parameter found as ivy variable: > > ivy.organisation=info.projects > > [ivy:publish] parameter found as ivy variable: > > ivy.module=ProjectFoo > > [ivy:publish] parameter found as ivy variable: > > ivy.revision=1.0-alpha1 // Uau!!! Where is the 'trick' with > the > > Host Name > > [ivy:publish] parameter found as attribute value: > > ivy.deliver.revision=1.0-alpha2 > > [ivy:publish] parameter found as attribute value: > > ivy.status=release > > [ivy:publish] parameter found as attribute value: > > ivy.organisation=info.projects > > [ivy:publish] parameter found as attribute value: > > ivy.module=ProjectFoo > > [ivy:publish] parameter found as attribute value: > > ivy.revision=1.0-alpha1 // actually found the right version. > > [ivy:publish] parameter found as attribute value: > > ivy.deliver.revision=1.0-alpha2 > > [ivy:publish] parameter found as attribute value: > > > ivy.deliver.ivy.pattern=/home/deco/workspace/ProjectFoo/dist/[artifact].[ext] > > [ivy:publish] parameter found as attribute value: > > ivy.status=release > > [ivy:publish] parameter not found: ivy.delivery.list.file > > +Task: property > > [property] Loading /tmp/delivery.properties > > [property] Unable to find property file: > /tmp/delivery.properties > > [ivy:publish] :: delivering :: > info.projects#ProjectFoo;1.0-alpha1 > > :: 1.0-alpha2 :: release :: Thu Sep 11 16:41:00 GMT 2008 > > [ivy:publish] options = status=release pubdate=Thu Sep 11 > > 16:41:00 GMT 2008 validate=true resolveDynamicRevisions=true > resolveId=null > > [antcall] Exiting /home/deco/workspace/ProjectFoo/build.xml. > > > > BUILD FAILED > > /home/deco/workspace/ProjectFoo/build.xml:51: The following error > > occurred while executing this line: > > /home/deco/workspace/Release/release.xml:59: impossible to > publish > > artifacts for info.projects#ProjectFoo;1.0-alpha1: > > info.projects#ProjectFoo;1.0-alpha1: java.lang.IllegalStateException: ivy > > file not found in cache for info.projects#ProjectFoo;1.0-alpha1: please > > resolve dependencies before delivering > > (/home/deco/.ivy2/cache/resolved-info.projects-ProjectFoo-1.0-alpha1.xml) > > at > > > org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:541) > > at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:418) > > at > > org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105) > > at > > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) > > at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown > Source) > > at > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > > org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105) > > at org.apache.tools.ant.Task.perform(Task.java:348) > > at org.apache.tools.ant.Target.execute(Target.java:357) > > at org.apache.tools.ant.Target.performTasks(Target.java:385) > > at > > org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329) > > at > > org.apache.tools.ant.Project.executeTarget(Project.java:1298) > > at > > > org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) > > at > > > org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32) > > at > > org.apache.tools.ant.Project.executeTargets(Project.java:1181) > > at > > > org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423) > > at > > > org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137) > > Caused by: /home/deco/workspace/Release/release.xml:59: > impossible > > to publish artifacts for info.projects#ProjectFoo;1.0-alpha1: > > info.projects#ProjectFoo;1.0-alpha1: > > java.lang.IllegalStateException: ivy file not found in cache > > for info.projects#ProjectFoo;1.0-alpha1: please resolve dependencies > before > > delivering ( > > /home/deco/.ivy2/cache/resolved-info.projects-ProjectFoo-1.0-alpha1.xml) > > > > // Unfortunately, the file in cache is ' > > [EMAIL PROTECTED]' and ivy is > looking > > for 'resolved-info.projects-ProjectFoo-1.0-alpha1.xml'. > > > > > > Can anyone tell, what am I doing wrong, or if this is actually a bug? > > > > Thanks, > > > > Paulo > > > > > > Below are the "version" and "publish" targets for both projects > > ============================================================== > > ====================== ProjectFoo =============================== > > ============================================================== > > <target name="ivy-new-version" unless="ivy.new.revision"> > > <!-- default module version prefix value --> > > <property name="module.version.prefix" > > value="${marketing.version.target}-${version.classifier}" /> > > > > <!-- asks to ivy an available version number --> > > <ivy:info file="${ivy.file}" /> > > <ivy:buildnumber > > organisation="${ivy.organisation}" module="${ivy.module}" > > revision="${module.version.prefix}" defaultBuildNumber="1" > > revSep=""/> > > </target> > > > > <target name="version" depends="ivy-new-version"> > > <!-- create version file in classpath for later inclusion in jar > > --> > > <mkdir dir="${dist.root}"/> > > <echo message="version=${ivy.new.revision}" > file="${dist.root}/${ > > ant.project.name}.properties" append="false" /> > > <!-- load generated version properties file --> > > <property file="${dist.root}/${ant.project.name}.properties" /> > > </target> > > > > > > <target name="publish" depends="version" description="--> publish > this > > project in the shared repository"> > > <ivy:publish artifactspattern="${dist.root}/[artifact].[ext]" > > resolver="ivysvn" > > pubrevision="${version}" > > status="release" > > forcedeliver="true" > > /> > > <echo message="project ${ant.project.name} released with version > > ${version}" /> > > </target> > > ============================================================== > > ====================== /ProjectFoo ============================== > > ============================================================== > > > > ============================================================== > > ====================== ProjectBar =============================== > > ============================================================== > > <target name="ivy-new-version" unless="ivy.new.revision"> > > <!-- default module version prefix value --> > > <property name="module.version.prefix" > > value="${module.version.target}-dev-b" /> > > > > <!-- asks to ivy an available version number --> > > <ivy:info file="${ivy.file}" /> > > <ivy:buildnumber > > organisation="${ivy.organisation}" module="${ivy.module}" > > revision="${module.version.prefix}" defaultBuildNumber="1" > > revSep=""/> > > </target> > > > > <target name="version" depends="ivy-new-version"> > > <!-- create version file in classpath for later inclusion in jar > > --> > > <!-- <mkdir dir="${build.classes}"/>--> > > <echo message="version=${ivy.new.revision}" > > file="${build.classes}/${ant.project.name}.properties" append="false" /> > > <!-- load generated version properties file --> > > <property file="${build.classes}/${ant.project.name}.properties" > > /> > > </target> > > > > <target name="publish-no-test" depends="jar, version" > > description="--> publish this project in the shared repository"> > > <ivy:publish artifactspattern="${dist.root}/[artifact].[ext]" > > resolver="ivysvn" > > pubrevision="${version}" > > status="release" > > /> > > <echo message="project ${ant.project.name} released with > > version ${version}" /> > > </target> > > ============================================================== > > ====================== /ProjectBar ============================== > > ============================================================== > > > -- Xavier Hanin - Independent Java Consultant BordeauxJUG co leader - http://www.bordeauxjug.org/ Blogger - http://xhab.blogspot.com/ Apache Ivy Creator - http://ant.apache.org/ivy/
