ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oliver Mannion (COMPASS)" <o.mann...@auckland.ac.nz>
Subject RE: Artifact not included from dependency's dependency when conf="*->@"
Date Wed, 14 Mar 2012 02:22:50 GMT
I've managed to solve this. Casperdatasets-io was being resolved by casperdatasets-ext which
requested sources, and because of the exclude directive at the bottom of casperdatasets-io
ivy.xml it was dropping the artifact. I removed the exclude directive and it works.

-----Original Message-----
From: Oliver Mannion (COMPASS) [mailto:o.mannion@auckland.ac.nz] 
Sent: Tuesday, 13 March 2012 1:35 p.m.
To: 'ivy-user@ant.apache.org'
Subject: Artifact not included from dependency's dependency when conf="*->@"

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>
 

__________ Information from ESET NOD32 Antivirus, version of virus signature database 6961
(20120312) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
 

Mime
View raw message