We have a project that produces jars in this form: env.module_name.jar. These jars are currently copied to the target environment filtered by environment name and finally renamed so that the final jar on the target is just module_name.jar. For example, dev.module_name.jar gets deployed on the dev environment as module_name.jar.
It seemed to me that I could create a configuration for each environment and then resolve/retrieve by configuration instead of jumping through the renaming hoops we currently do. Here's the test configuration I'm trying to use: <!-- ivysettings.xml --> <ivysettings> <credentials realm="Artifactory Realm" host="localhost" username="admin" passwd="password"/> <caches defaultCacheDir="${basedir}/build/ivy_cache" ivyPattern="[organisation]/[module]/[revision]/[type]s/[conf].[artifact].[ext]" artifactPattern="[organisation]/[module]/[revision]/[type]s/[conf].[artifact].[ext]"/> <resolvers> <url name="default" m2compatible="false"> <ivy pattern="http://localhost:8082/artifactory/libs-snapshot-local/[organisation]/[module]/[revision]/[type]s/[conf].[artifact].[ext]"/> <artifact pattern="http://localhost:8082/artifactory/libs-snapshot-local/[organisation]/[module]/[revision]/[type]s/[conf].[artifact].[ext]"/> </url> </resolvers> </ivysettings> <!-- ivy.xml --> <ivy-module version="2.0"> <info organisation="org.example" module="module_example"/> <configurations> <conf name="dev"/> <conf name="tst"/> <conf name="prd"/> </configurations> <publications> <artifact conf="dev"/> <artifact conf="tst"/> <artifact conf="prd"/> </publications> </ivy-module> <!-- build.xml --> <project name="module_example" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant"> <taskdef uri="antlib:org.apache.ivy.ant" resource="org/apache/ivy/ant/antlib.xml"> <classpath> <pathelement location="ivy-2.3.0.jar"/> </classpath> </taskdef> <ivy:resolve/> <ivy:publish resolver="default" overwrite="true" update="true" forcedeliver="true" pubrevision="0"> <artifacts pattern="build/lib/[conf].[artifact].[ext]"/> </ivy:publish> </project> When I run ant I get: BUILD FAILED /Users/egcastro/dev/conf_test/build.xml:16: impossible to publish artifacts for org.example#module_example;working@poseidon: java.io.IOException: missing artifact org.example#module_example;0!module_example.jar at org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:219) at org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:166) at org.apache.ivy.Ivy.publish(Ivy.java:615) at org.apache.ivy.ant.IvyPublish.doExecute(IvyPublish.java:312) at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:277) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 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: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.helper.ProjectHelper2.parse(ProjectHelper2.java:179) at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:93) at org.apache.tools.ant.Main.runBuild(Main.java:826) 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) Clearly I've misconfigured something but I'm not sure what what to look at next. What am I doing wrong? -- Edwin G. Castro