I'm using 2.4.0 of Ivy. I'm trying to ivy:retrieve a bunch of
dependencies which _do not_ belong to a specific configuration. Here's
what the ivy.xml looks like:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0">
<info organisation="myfoo.org" module="hello"
revision="0.0.1-SNAPSHOT"/>
<configurations defaultconfmapping="compile->default;runtime->runtime">
<conf name="compile" description="Required at compile time"/>
<conf name="runtime" description="Required at runtime"
extends="compile"/>
<conf name="provided" description="Provided by the container
environment" visibility="private"/>
<conf name="default" description="An alias for runtime
configuration" extends="runtime"/>
<conf name="test" description="Required for tests only"
extends="runtime" visibility="private"/>
</configurations>
<publications>
<artifact name="hello" type="jar" ext="zip"/>
</publications>
<dependencies>
<dependency org="org.thirdparty" name="container" rev="1.0.0"
conf="compile->default;provided->default;runtime->runtime;"/>
<dependency org="org.myapp" name="foo" rev="1.0.0"/>
<dependency org="org.myapp" name="bar" rev="1.0.0" />
<dependency org="org.testng" name="testng" rev="6.1.1"
conf="test->default"/>
</dependencies>
</ivy-module>
What I intend to do is retrieve only the org.myapp:foo and org.myapp:bar
dependencies (i.e. those that don't belong to "provided" or "test" conf)
into a specific folder during the build. build.xml looks like:
<ivy:retrieve
pattern="${dist.dir}/${dist.name}/lib/[artifact](-[classifier]).[ext]"
conf="!provided,!test" type="jar,bundle" overwritemode="always"/>
This ends up failing with errors like:
build.xml:123: impossible to ivy retrieve: java.lang.RuntimeException:
problem during retrieve of org.myapp#hello:
java.lang.IllegalStateException: Report file
'/.ivy2/cache/org.myapp-hello-!provided.xml' does not exist.
at
org.apache.ivy.core.retrieve.RetrieveEngine.retrieve(RetrieveEngine.java:249)
at org.apache.ivy.Ivy.retrieve(Ivy.java:561)
at org.apache.ivy.ant.IvyRetrieve.doExecute(IvyRetrieve.java:98)
at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:271)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.Main.runBuild(Main.java:851)
at org.apache.tools.ant.Main.startAnt(Main.java:235)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
java.lang.IllegalStateException: Report file
'/.ivy2/cache/org.myapp-hello-!provided.xml' does not exist.
at
org.apache.ivy.plugins.report.XmlReportParser.parse(XmlReportParser.java:285)
at
org.apache.ivy.core.retrieve.RetrieveEngine.determineArtifactsToCopy(RetrieveEngine.java:329)
at
org.apache.ivy.core.retrieve.RetrieveEngine.retrieve(RetrieveEngine.java:118)
... 19 more
Is there some way, I can retrieve dependencies that do not belong to
specific conf(s)?
-Jaikiran