Hi there, My project casperdatasets-io has a dependency on com.google.code.gson. Ivy correctly resolves casperdatasets-io and the gson-2.1.jar artifact of com.google.code.gson. My project JAMSIM depends on casperdatasets-io. But when Ivy resolves the default conf of JAMSIM and I inspect the Ivy report for JAMSIM, it does not include the com.google.code.gson artifact:
gson by com.google.code.gson Revision: 2.1 Home Page http://code.google.com/p/google-gson/ Status release Publication 20111231202009 Resolver public Configurations default, compile, master(*), runtime, compile(*), javadoc, runtime(*), master, sources Artifacts size 0 kB (0 kB downloaded, 0 kB in cache) Licenses The Apache Software License, Version 2.0 Required by Organisation Name Revision In Configurations Asked Revision net.casper casperdatasets-io 2.1.1 default, master(*), compile(*), javadoc, runtime(*), sources latest.integration Dependencies No dependency Artifacts No artifact Gson ivy.xml has this: <configurations> <conf name="default" visibility="public" description="runtime dependencies and master artifact can be used with this conf" extends="runtime,master"/> <conf name="master" visibility="public" description="contains only the artifact published by this module itself, with no transitive dependencies"/> <conf name="compile" visibility="public" description="this is the default scope, used if none is specified. Compile dependencies are available in all classpaths."/> <conf name="provided" visibility="public" description="this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive."/> <conf name="runtime" visibility="public" description="this scope indicates that the dependency is not required for compilation, but is for execution. It is in the runtime and test classpaths, but not the compile classpath." extends="compile"/> <conf name="test" visibility="private" description="this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases." extends="runtime"/> <conf name="system" visibility="public" description="this scope is similar to provided except that you have to provide the JAR which contains it explicitly. The artifact is always available and is not looked up in a repository."/> <conf name="sources" visibility="public" description="this configuration contains the source artifact of this module, if any."/> <conf name="javadoc" visibility="public" description="this configuration contains the javadoc artifact of this module, if any."/> <conf name="optional" visibility="public" description="contains all optional dependencies"/> </configurations> <publications> <artifact name="gson" type="jar" ext="jar" conf="master"/> <artifact name="gson" type="source" ext="jar" conf="sources" m:classifier="sources"/> <artifact name="gson" type="javadoc" ext="jar" conf="javadoc" m:classifier="javadoc"/> </publications> I'm resolving the default conf of JAMSIM ivy.xml... In JAMSIM ivy.xml I have: <dependency org="net.casper" name="casperdatasets-io" rev="latest.integration" conf="*->@"/> In casperdatasets-io ivy.xml I have: <dependency org="com.google.code.gson" name="gson" rev="latest.integration" conf="*->@"/> When I change casperdatasets-io ivy.xml to <dependency org="com.google.code.gson" name="gson" rev="latest.integration" conf="default"/> It works.. but I don't understand why it shouldn't work with conf="*->@" What do I need to do to get this to work with conf="*->@" ? I'm using Ivy 2.2.0. Many thanks, Oliver Here are my files in full: Casperdatasets-io ivy.xml -------------------------------- <?xml version="1.0" encoding="UTF-8"?> <ivy-module version="2.0"> <info organisation="net.casper" module="${name}" revision="${version}" status="release"> <license name="LGPL" url="http://www.gnu.org/licenses/lgpl.html" /> <description homepage="http://code.google.com/p/casperdatasets/"> Casper datasets I/O modules for loading datasets to/from files and Java POJO beans. </description> </info> <configurations> <conf name="default" visibility="public" description="binary artifacts of this module and its dependencies"/> <conf name="sources" visibility="public" description="source artifacts of this module and its dependencies"/> <conf name="javadoc" visibility="public" description="javadoc artifacts of this module and its dependencies"/> </configurations> <publications> <artifact conf="default" /> <artifact name="${name}-sources" type="source" conf="sources" ext="jar" /> <artifact name="${name}-javadoc" type="javadoc" conf="javadoc" ext="jar" /> <artifact type="pom" ext="pom" conf="default"/> </publications> <dependencies> <dependency org="net.casper" name="casperdatasets" rev="latest.integration" conf="*->@"/> <dependency org="org.omancode" name="omcutil" rev="latest.integration" conf="*->@"/> <dependency org="org.omancode" name="readmytables" rev="latest.integration" conf="*->@"/> <dependency org="org.omancode" name="readmytablesfromfiles" rev="latest.integration" conf="*->@"/> <dependency org="commons-lang" name="commons-lang" rev="latest.integration" conf="*->@"/> <dependency org="commons-beanutils" name="commons-beanutils" rev="latest.integration" conf="*->@"> <exclude name="commons-collections"/> </dependency> <dependency org="net.sourceforge.supercsv" name="supercsv" rev="latest.integration" /> <dependency org="com.google.code.gson" name="gson" rev="latest.integration" conf="*->@"/> <!-- exclude dependencies artifacts based on configuration --> <exclude type="source" ext="*" conf="master,javadoc"/> <exclude type="javadoc" ext="*" conf="master,sources"/> <exclude type="jar" ext="*" conf="sources,javadoc"/> </dependencies> </ivy-module> Casperdatasets-io ivysettings.xml ----------------------------------------- <ivysettings> <include url="${ivy.default.settings.dir}/ivysettings.xml" /> <!-- default, i.e use local, shared and public resolvers --> <settings defaultResolver="default" /> <!-- make build.properites available for ivy.xml --> <properties file="${ivy.basedir}/build.properties" /> <resolvers> <ibiblio name="omcutil-repo" root="http://omcutil.googlecode.com/git/repo/" m2compatible="true" /> <ibiblio name="readmytables-repo" root="http://readmytables.googlecode.com/git/repo/" m2compatible="true" /> <ibiblio name="casper-repo" root="http://casperdatasets.googlecode.com/svn/trunk/repo/" m2compatible="true" /> <!-- the ivyroundup packager repo --> <packager name="ivyroundup" buildRoot="${user.home}/.ivy2/packager/build" resourceCache="${user.home}/.ivy2/packager/cache" preserveBuildDirectories="true"> <ivy pattern="http://ivyroundup.googlecode.com/svn/trunk/repo/modules/[organisation]/[module]/[revision]/ivy.xml" /> <artifact pattern="http://ivyroundup.googlecode.com/svn/trunk/repo/modules/[organisation]/[module]/[revision]/packager.xml" /> </packager> <!-- for publishing to --> <filesystem name="local-maven-repo" m2compatible="true"> <artifact pattern="${ivy.basedir}/../repo/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/> </filesystem> </resolvers> <modules> <!-- define resolvers for specific modules --> <module organisation="net.sourceforge.supercsv" resolver="ivyroundup" /> <module organisation="net.casper" resolver="casper-repo" /> <module organisation="org.omancode" name="omcutil" resolver="omcutil-repo" /> <module organisation="org.omancode" name="readmytables" resolver="readmytables-repo" /> <module organisation="org.omancode" name="readmytablesfromfiles" resolver="readmytables-repo" /> </modules> </ivysettings> JAMSIM ivy.xml -------------------- <?xml version="1.0" encoding="UTF-8"?> <ivy-module version="2.0"> <info organisation="org.jamsim" module="jamsim" revision="${version}" status="release"> <license name="LGPL" url="http://www.gnu.org/licenses/lgpl.html" /> <description homepage="http://code.google.com/p/jamsim/"> </description> </info> <configurations> <conf name="default" visibility="public" description="binary artifacts of this module and its dependencies"/> <conf name="sources" visibility="public" description="source artifacts of this module and its dependencies"/> <conf name="javadoc" visibility="public" description="javadoc artifacts of this module and its dependencies"/> </configurations> <publications> <artifact conf="default"/> <artifact name="${name}-sources" type="source" conf="sources" ext="jar" /> <artifact name="${name}-javadoc" type="javadoc" conf="javadoc" ext="jar" /> <artifact type="pom" ext="pom" conf="default"/> </publications> <dependencies> <dependency org="org.ascape" name="ascape" rev="5.6.1"/> <dependency org="net.casper" name="casperdatasets-ext" rev="latest.integration" conf="*->@"/> <dependency org="net.casper" name="casperdatasets-io" rev="latest.integration" conf="*->@"/> <dependency org="org.omancode" name="romanface" rev="latest.integration" conf="*->@"/> <dependency org="org.omancode" name="omcutil" rev="[1.2.4,)" conf="*->@"/> <dependency org="org.rosuda" name="javaGD" rev="latest.integration"/> <dependency org="org.javabuilders" name="javabuilder-swing" rev="1.1-RC4"/> <!-- slf4j needed for javabuilders --> <dependency org="org.slf4j" name="slf4j-log4j12" rev="latest.integration"/> <dependency org="colt" name="colt" rev="latest.integration"> <exclude name="concurrent" /> </dependency> <dependency org="org.jedit" name="jedit-textArea" rev="latest.integration"/> <!-- exclude dependencies artifacts based on configuration --> <exclude type="source" ext="*" conf="default,javadoc"/> <exclude type="javadoc" ext="*" conf="default,sources"/> <exclude type="jar" ext="*" conf="sources,javadoc"/> </dependencies> </ivy-module> JAMSIM ivysettings.xml ----------------------------- <ivysettings> <include url="${ivy.default.settings.dir}/ivysettings.xml" /> <!-- default, i.e use local, shared and public resolvers --> <settings defaultResolver="default" /> <!-- make build.properties available for ivy.xml --> <properties file="${ivy.basedir}/build.properties" /> <resolvers> <ibiblio name="romanface-repo" root="http://romanface.googlecode.com/git/repo/" m2compatible="true" /> <ibiblio name="omcutil-repo" root="http://omcutil.googlecode.com/git/repo/" m2compatible="true" /> <ibiblio name="readmytables-repo" root="http://readmytables.googlecode.com/git/repo/" m2compatible="true" /> <ibiblio name="jamsim-repo" root="http://jamsim.googlecode.com/git/repo/" m2compatible="true" /> <ibiblio name="casper-repo" root="http://casperdatasets.googlecode.com/svn/trunk/repo/" m2compatible="true" /> <!-- the javabuilders maven repo --> <ibiblio name="javabuilders" root="http://javabuilders.googlecode.com/svn/repo/" m2compatible="true" /> <!-- the ivyroundup packager repo --> <packager name="ivyroundup" buildRoot="${user.home}/.ivy2/packager/build" resourceCache="${user.home}/.ivy2/packager/cache" preserveBuildDirectories="true"> <ivy pattern="http://ivyroundup.googlecode.com/svn/trunk/repo/modules/[organisation]/[module]/[revision]/ivy.xml" /> <artifact pattern="http://ivyroundup.googlecode.com/svn/trunk/repo/modules/[organisation]/[module]/[revision]/packager.xml" /> </packager> <!-- for publishing to --> <filesystem name="local-maven-repo" m2compatible="true"> <artifact pattern="${ivy.basedir}/../repo/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/> </filesystem> </resolvers> <modules> <!-- define resolvers for specific modules --> <module organisation="net.casper" resolver="local" /> <module organisation="org.beanshell" resolver="romanface-repo" /> <module organisation="org.rosuda" resolver="romanface-repo" /> <module organisation="org.omancode" name="omcutil" resolver="omcutil-repo" /> <module organisation="org.omancode" name="readmytables" resolver="readmytables-repo" /> <module organisation="org.omancode" name="readmytablesfromfiles" resolver="readmytables-repo" /> <module organisation="org.javabuilders" resolver="javabuilders" /> <module organisation="net.sourceforge.supercsv" resolver="ivyroundup" /> <module organisation="org.ascape" resolver="ivyroundup" /> <module organisation="org.omancode" name="romanface" resolver="romanface-repo" /> <module organisation="org.jedit" resolver="jamsim-repo" /> </modules> </ivysettings> Gson ivy.xml ---------------- <?xml version="1.0" encoding="UTF-8"?> <ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven"> <info organisation="com.google.code.gson" module="gson" revision="2.1" status="release" publication="20111231202009" > <license name="The Apache Software License, Version 2.0" url="http://www.apache.org/licenses/LICENSE-2.0.txt" /> <description homepage="http://code.google.com/p/google-gson/"> Google Gson library </description> <m:properties__project.build.sourceEncoding>UTF-8</m:properties__project.build.sourceEncoding> <m:properties__sonatypeOssDistMgmtSnapshotsUrl>https://oss.sonatype.org/content/repositories/snapshots/</m:properties__sonatypeOssDistMgmtSnapshotsUrl> <m:maven.plugins>org.apache.maven.plugins__maven-enforcer-plugin__1.0-beta-1|org.apache.maven.plugins__maven-enforcer-plugin__1.0-beta-1|org.apache.maven.plugins__maven-compiler-plugin__2.3.2|org.apache.maven.plugins__maven-jar-plugin__2.3.2|org.apache.maven.plugins__maven-source-plugin__2.1.2|org.apache.maven.plugins__maven-javadoc-plugin__2.8|org.apache.maven.plugins__maven-eclipse-plugin__2.8|org.apache.maven.plugins__maven-jxr-plugin__2.2|org.apache.maven.plugins__maven-pmd-plugin__2.5|org.apache.maven.plugins__maven-checkstyle-plugin__2.6|org.codehaus.mojo__taglist-maven-plugin__2.4|org.codehaus.mojo__cobertura-maven-plugin__2.4|org.apache.maven.plugins__maven-release-plugin__null|null__maven-assembly-plugin__2.2.2</m:maven.plugins> </info> <configurations> <conf name="default" visibility="public" description="runtime dependencies and master artifact can be used with this conf" extends="runtime,master"/> <conf name="master" visibility="public" description="contains only the artifact published by this module itself, with no transitive dependencies"/> <conf name="compile" visibility="public" description="this is the default scope, used if none is specified. Compile dependencies are available in all classpaths."/> <conf name="provided" visibility="public" description="this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive."/> <conf name="runtime" visibility="public" description="this scope indicates that the dependency is not required for compilation, but is for execution. It is in the runtime and test classpaths, but not the compile classpath." extends="compile"/> <conf name="test" visibility="private" description="this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases." extends="runtime"/> <conf name="system" visibility="public" description="this scope is similar to provided except that you have to provide the JAR which contains it explicitly. The artifact is always available and is not looked up in a repository."/> <conf name="sources" visibility="public" description="this configuration contains the source artifact of this module, if any."/> <conf name="javadoc" visibility="public" description="this configuration contains the javadoc artifact of this module, if any."/> <conf name="optional" visibility="public" description="contains all optional dependencies"/> </configurations> <publications> <artifact name="gson" type="jar" ext="jar" conf="master"/> <artifact name="gson" type="source" ext="jar" conf="sources" m:classifier="sources"/> <artifact name="gson" type="javadoc" ext="jar" conf="javadoc" m:classifier="javadoc"/> </publications> <dependencies> <dependency org="junit" name="junit" rev="3.8.2" force="true" conf="test->runtime(*),master(*)"/> </dependencies> </ivy-module>