Appearantly I did something wrong. Running "ivy:retrieve" now downloads
94 jars. Ok. However, if I I now want to split up like this:

<ivy:retrieve conf="runtime" pattern="lib/[artifact]-[revision].[ext]"/>
<ivy:retrieve conf="test" pattern="lib-test/[artifact]-[revision].[ext]"/> <ivy:retrieve conf="build" pattern="lib-ext/[artifact]-[revision].[ext]"/>

Then I get an error

/BUILD FAILED
C:\Documents and Settings\User\My
Documents\kpprofiler2\components\service\build.xml:39: impossible to ivy
retrieve: java.lang.RuntimeException: problem during
retrieve of nl.knowledgeplaza#kpprofiler-service:
java.lang.RuntimeException: Multiple artifacts of the module
org.codehaus.enunciate#enunciate-rt;1.10 are ret
ieved to the same file! Update the retrieve pattern to fix this error.
/

OK, many projects have source and jar artifacts with the same name, so you really want to either set a retrieve pattern which includes the type of the artifact for disambiguation. If you cannot do this, you'll need to specify an exclusion rule for your dependencies to only include type jar. Here are examples of both:

<ivy:retrieve pattern="${ivy.lib.dir}/[type]/[artifact]-[revision].[ext]" haltonfailure="true" conf="build" sync="true"/>

        <dependencies>
          <exclude type="source"/>
        </dependencies>


Hm. Ok, I understand the problem that if multiple artifact are downloaded to the same file, then that would be an error. But why does "<ivy:retrieve/>" not have the same problem? Logically again; I have 4 dependency lines resulting in 94 jars, and the only thing I can do is filter these jars using configuration labels, how does limiting these 94 jars introduce a retrieved-to-same-file exception? If the error doesn't occur in the 94, how can it occur in a subset?

Tom

Reply via email to