I'm running into a weird scenario where ivy retrieves the wrong jar from a different module after resolving some conflicts.

Here's the relevant part of the ivy.xml:

<dependency org="aspectwerkz" name="aspectwerkz" rev="2.0+" conf="compile, aspectwerkz->default" /> <dependency org="aspectwerkz" name="aspectwerkz-core" rev="2.0+" conf="testtime->default" /> <dependency org="aspectwerkz" name="aspectwerkz-jdk5" rev="2.0+" conf="testtime->default" />

For the run-time weaving, aspectwerkz-jdk5.jar needs to be passed to the JVM in "-javaagent:path/to/askectwerkz-jdk5.jar", so in build.xml after a full resolve I have:

<ivy:retrieve resolveId="com.digizen-heimdall" conf="testtime" organisation="aspectwerkz" module="aspectwerkz-jdk5" pattern="${aspectwerkz-jdk5.jar}" />

But I keep getting the aspectwerkz-core.jar retrieved. "ant -d" shows:
[ivy:retrieve] parameter found as attribute value: ivy.organisation=aspectwerkz
[ivy:retrieve] parameter found as attribute value: ivy.module=aspectwerkz-jdk5
[ivy:retrieve] parameter not found: ivy.resolved.file.com.digizen-heimdall
[ivy:retrieve] using standard ensure resolved
[ivy:retrieve] parameter found as attribute value: ivy.resolved.configurations=aspectwerkz [ivy:retrieve] parameter found as attribute value: ivy.organisation=aspectwerkz
[ivy:retrieve] parameter found as attribute value: ivy.module=aspectwerkz-jdk5
[ivy:retrieve] parameter found as attribute value: ivy.retrieve.pattern=distrib/aspectwerkz-jdk5.jar
[ivy:retrieve] :: retrieving :: [ aspectwerkz | aspectwerkz-jdk5 ]
[ivy:retrieve]  checkUpToDate=true
[ivy:retrieve]  confs: [aspectwerkz]
[ivy:retrieve] conflict on /path/to/aspectwerkz-jdk5.jar in [aspectwerkz]: 2.0 won [ivy:retrieve] removing conflict looser artifact: [ xml-apis | xml-apis | 1.0.b2 ]/xml-apis.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ qdox | qdox | 1.4 ]/qdox.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ asm | asm | 1.5.3 ]/asm.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ asm | asm-attrs | 1.5.3 ]/asm-attrs.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ log4j | log4j | 1.2.14 ]/log4j.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ commons-lang | commons-lang | 2.3 ]/commons-lang.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ saxpath | saxpath | 1.0-FCS ]/saxpath.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ relaxngDatatype | relaxngDatatype | 20020414 ]/relaxngDatatype.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ asm | asm-util | 1.5.3 ]/asm-util.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ dom4j | dom4j | 1.4 ]/dom4j.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ msv | msv | 20020414 ]/msv.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ jrexx | jrexx | 1.1.1 ]/jrexx.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ jaxen | jaxen | 1.0-FCS ]/jaxen.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ aspectwerkz | aspectwerkz-jdk5 | 2.0 ]/aspectwerkz-jdk5.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ aspectwerkz | aspectwerkz | 2.0 ]/aspectwerkz.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ trove | trove | 1.0.2 ]/trove.jar[jar] [ivy:retrieve] removing conflict looser artifact: [ isorelax | isorelax | 20020414 ]/isorelax.jar[jar] [ivy:retrieve] retrieving /home/jingxue/.ivy2/cache/aspectwerkz/aspectwerkz-core/jars/aspectwerkz-core-2.0.jar [ivy:retrieve] to /home/jingxue/workspace/Heimdall/distrib/aspectwerkz-jdk5.jar
[ivy:retrieve]  1 artifacts copied, 0 already retrieved
[ivy:retrieve]  retrieve done (20ms)

I suppose the questions I have would begin with where the conflicts came from, and also how the aspectwerkz-core would get involved in the retrieve of a different module, namely aspectwerkz/aspectwerkz-jdk5, at all.

Thanks for any pointers.
--
Jing Xue


Reply via email to