ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maarten Coene <maarten_co...@yahoo.com>
Subject Re: Using ivy:buildnumber with more than one url resolver
Date Thu, 30 Jul 2009 21:30:41 GMT

Could you open a JIRA issue and post your full Ant log there, together with your settings.xml
and build.xml

Maarten




----- Original Message ----
From: "Glidden, Douglass A" <Douglass.A.Glidden@boeing.com>
To: ivy-user@ant.apache.org
Sent: Thursday, July 30, 2009 8:15:03 PM
Subject: Using ivy:buildnumber with more than one url resolver

Hi,

I've run into some weird behavior when the ivy buildnumber task is used with a url resolver
more than once in the same build.  Here's a sample scenario:

Included in my resolvers are a releases resolver and a snapshots resolver, which run against
two repositories in the same Nexus repository manager.  The snapshot revision number is based
on the current release revision number, e.g. if the latest revision in the releases repository
is 0.6 then any new snapshots created should be 0.7-SNAPSHOT-# (where # is incremented with
each new snapshot created).  My build then first runs ivy:buildnumber against the releases
resolver, then uses the result of that in running ivy:buildnumber against the snapshots resolver.
 The problem is that ivy:buildnumber doesn't construct the URL correctly when it is re-run.
 Here are relevant excerpts from the debug output:

When ivy:buildnumber is run against the releases resolver, then against the snapshots resolver:
...
[ivy:buildnumber]     using releases to list all in http://nexus.myorg.com:8081/nexus/content/repositories/releases/myorg/myproject/
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/releases/myorg/myproject/0.6/].
[ivy:buildnumber]         found 1 resources
[ivy:buildnumber]     using releases to list all in http://nexus.myorg.com:8081/nexus/content/repositories/releases/myorg/myproject/
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/releases/myorg/myproject/0.6/].
[ivy:buildnumber]         found 1 resources
[ivy:buildnumber]     using releases to list all in http://nexus.myorg.com:8081/nexus/content/repositories/releases/myorg/myproject/0.6
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/releases/myorg/myproject/0.6/ivy-0.6.xml].
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/releases/myorg/myproject/0.6/ivy-0.6.xml.md5].
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/releases/myorg/myproject/0.6/ivy-0.6.xml.sha1].
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/releases/myorg/myproject/0.6/myproject-0.6.jar].
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/releases/myorg/myproject/0.6/myproject-0.6.jar.md5].
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/releases/myorg/myproject/0.6/myproject-0.6.jar.sha1].
[ivy:buildnumber]         found 6 urls
[ivy:buildnumber]         1 matched http://nexus.myorg.com:8081/nexus/content/repositories/releases/myorg/myproject/0.6/[artifact]-0.6.jar
...
[ivy:buildnumber]     using snapshots to list all in http://nexus.myorg.myorg:8081/nexus/content/repositories/snapshots/
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.myorg:8081/nexus/content/repositories/snapshots/.meta/].
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.myorg:8081/nexus/content/repositories/snapshots/myorg/].
[ivy:buildnumber]         found 2 resources
[ivy:buildnumber]     using snapshots to list all in http://nexus.myorg.myorg:8081/nexus/content/repositories/snapshots/
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.myorg:8081/nexus/content/repositories/snapshots/.meta/].
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.myorg:8081/nexus/content/repositories/snapshots/myorg/].
[ivy:buildnumber]         found 2 resources
...

As you can see, when it runs against the snapshots resolver, it leaves off the organisation
and module tokens from the URL.  The problem is not with the settings for the snapshots resolver,
though, because when ivy:buildnumber is run against the snapshots resolver without first running
it against the releases resolver, the output is normal:
...
[ivy:buildnumber]     using snapshots to list all in http://nexus.myorg.com:8081/nexus/content/repositories/snapshots/myorg/myproject/
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/snapshots/myorg/myproject/0.7-SNAPSHOT-1/].
[ivy:buildnumber]         found 1 resources
[ivy:buildnumber]     using snapshots to list all in http://nexus.myorg.com:8081/nexus/content/repositories/snapshots/myorg/myproject/
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/snapshots/myorg/myproject/0.7-SNAPSHOT-1/].
[ivy:buildnumber]         found 1 resources
[ivy:buildnumber]     using snapshots to list all in http://nexus.myorg.com:8081/nexus/content/repositories/snapshots/myorg/myproject/0.7-SNAPSHOT-1
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/snapshots/myorg/myproject/0.7-SNAPSHOT-1/ivy-0.7-SNAPSHOT-1.xml].
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/snapshots/myorg/myproject/0.7-SNAPSHOT-1/ivy-0.7-SNAPSHOT-1.xml.md5].
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/snapshots/myorg/myproject/0.7-SNAPSHOT-1/ivy-0.7-SNAPSHOT-1.xml.sha1].
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/snapshots/myorg/myproject/0.7-SNAPSHOT-1/myproject-0.7-SNAPSHOT-1.jar].
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/snapshots/myorg/myproject/0.7-SNAPSHOT-1/myproject-0.7-SNAPSHOT-1.jar.md5].
[ivy:buildnumber] ApacheURLLister found URL=[http://nexus.myorg.com:8081/nexus/content/repositories/snapshots/myorg/myproject/0.7-SNAPSHOT-1/myproject-0.7-SNAPSHOT-1.jar.sha1].
[ivy:buildnumber]         found 6 urls
[ivy:buildnumber]         1 matched http://nexus.myorg.com:8081/nexus/content/repositories/snapshots/myorg/myproject/0.7-SNAPSHOT-1/[artifact]-0.7-SNAPSHOT-1.jar
...

Relevant portions from the properties and ivysettings files:
...
ivy.nexus.default.artifact.pattern=[organisation]/[module]/[revision]/[artifact]-[revision].[ext]
ivy.nexus.default.ivy.pattern=[organisation]/[module]/[revision]/ivy-[revision].xml
ivy.nexus.repositories.path=content/repositories
ivy.nexus.releases.path=${ivy.nexus.repositories.path}/releases
ivy.nexus.snapshots.path=${ivy.nexus.repositories.path}/snapshots
ivy.nexus.url=http://nexus.myorg.com:8081/nexus
...

...
<url name="releases" m2compatible="true">
  <ivy pattern="${ivy.nexus.url}/${ivy.nexus.releases.path}/${ivy.nexus.default.ivy.pattern}"
/>
  <artifact pattern="${ivy.nexus.url}/${ivy.nexus.releases.path}/${ivy.nexus.default.artifact.pattern}"
/>
</url>
<url name="snapshots" m2compatible="true">
  <ivy pattern="${ivy.nexus.url}/${ivy.nexus.snapshots.path}/${ivy.nexus.default.ivy.pattern}"
/>
  <artifact pattern="${ivy.nexus.url}/${ivy.nexus.snapshots.path}/${ivy.nexus.default.artifact.pattern}"
/>
</url>
...

The build file has two trivial targets; one calls ivy:buildnumber against the releases resolver
and the other calls it against the snapshots resolver.  Either target produces correct results
when it is run by itself, but when both targets are run (regardless of order), the second
one to be run always shows the behavior described above.

Is this a bug or am I doing something wrong here?

Thanks,

Doug Glidden
Software Engineer
The Boeing Company
Douglass.A.Glidden@boeing.com


      

Mime
View raw message