ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maarten Coene <maarten_co...@yahoo.com>
Subject Re: Publishing multiple artifacts to a FileSystem repository and retrieving just one.
Date Tue, 21 Dec 2010 20:49:58 GMT
Could you give the dependency declaration where you do this with your remote 
repository?

Maarten




----- Original Message ----
From: Mandie Smith <mandie@houseofgnomes.net>
To: ivy-user@ant.apache.org
Sent: Tue, December 21, 2010 7:51:07 PM
Subject: Re: Publishing multiple artifacts to a FileSystem repository and 
retrieving just one.

I'm still having trouble with this.

I tried modifying how I referenced the dependencies to look as follows:

        <dependency org="myorg" name="YourModule" rev="4.9.+" conf="internal">
            <include name="art2" type="jar" conf="internal" />
        </dependency>

This works great for the local repo, but does not work against the
remote repo, which is m2compatible and uses poms.

I've tried changing my definition for the remote repo, but it only
tries to download the YourModule dependency as a jar, it doesn't even
look for the include.

I've been wondering if it would work to add an attribute to the
dependency tag to take the type.  Would this be a good idea?

Mandie


On Thu, Dec 9, 2010 at 11:29 AM, Mandie Smith <mandie@houseofgnomes.net> wrote:
> I have a project that is publishing multiple artifacts to a local
> FileSystem repository.  Several of these artifacts are tar.gz and I'm
> unable to retrieve them later.  It seems that the resolve either
> expects there to be an ivy.xml in each directory for each artifact, or
> it defaults to only looking for a .jar file.  Any ideas on what I'm
> missing that would allow a resolve of a tar.gz from the local
> FileSystem?
>
> I appreciate any help.
>
> Thanks,
> Mandie
>
> Here's a sample ivy.xml:
>
> <?xml version="1.0"?>
> <ivy-module version="2.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>  xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
>  xmlns:m="http://ant.apache.org/ivy/maven">
>
>        <info organisation="myorg" module="YourModule" revision="4.9.0.23" />
>
>        <configurations defaultconfmapping="%->default">
>                <conf name="default" />
>                <conf name="compile" />
>                <conf name="bundled" transitive="false" />
>                <conf name="runtime" transitive="false" />
>                <conf name="internal" transitive="false" />
>                <conf name="parent" transitive="false" />
>                <conf name="provided" />
>                <conf name="test" />
>                <conf name="util" />
>        </configurations>
>
>        <publications>
>                <artifact type="pom" />
>                <artifact name="art1" type="pom" />
>                <artifact name="art1" type="jar" />
>                <artifact name="art2" type="tar.gz" />
>                <artifact name="art2" type="pom" />
>        </publications>
>
>        <dependencies>
>        </dependencies>
> </ivy-module>
>
>
> Here is the output of the publish:
>
> :: loading settings :: file =
> /home/ivytest/TestProject/target/build/headers/ivypublisher.xml
> :: delivering :: myorg#YourModule;4.9.0.23 :: 4.9.0.23 :: release ::
> Thu Dec 09 11:19:45 EST 2010
>        delivering ivy file to /home/ivytest/TestProject/target/lib/ivy.xml
> :: publishing :: myorg#YourModule
>        published YourModule to
> /home/ivytest/.ivy2/local/myorg/YourModule/4.9.0.23/YourModule-4.9.0.23.pom
>        published art1 to
> /home/ivytest/.ivy2/local/myorg/art1/4.9.0.23/art1-4.9.0.23.pom
>        published art1 to
> /home/ivytest/.ivy2/local/myorg/art1/4.9.0.23/art1-4.9.0.23.jar
>        published art2 to
> /home/ivytest/.ivy2/local/myorg/art2/4.9.0.23/art2-4.9.0.23.tar.gz
>        published art2 to
> /home/ivytest/.ivy2/local/myorg/art2/4.9.0.23/art2-4.9.0.23.pom
>        published ivy to 
>/home/ivytest/.ivy2/local/myorg/YourModule/4.9.0.23/ivy.xml
>
>
> Here is the output of the resolve on the art1 artifact, which is a jar:
>
> [ivy:resolve] main: Checking cache for: dependency: myorg#art1;4.9.0.+
> {internal=[default]}
> [ivy:resolve] no cached resolved revision for myorg#art1;4.9.0.+
> [ivy:resolve] don't use cache for myorg#art1;4.9.0.+: checkModified=true
> [ivy:resolve]           tried 
>/home/ivytest/.ivy2/local/myorg/art1/[revision]/ivy.xml
> [ivy:resolve]           tried
> /home/ivytest/.ivy2/local/myorg/art1/[revision]/art1-[revision].jar
> [ivy:resolve] local do not support transaction. ivy pattern and
> artifact pattern do not use the same directory for revision
> [ivy:resolve]   local: no ivy file found for myorg#art1;4.9.0.+: using
> default data
> [ivy:resolve]           [4.9.0.23] myorg#art1
> [ivy:resolve]   found myorg#art1;4.9.0.23 in local
> [ivy:resolve]   [4.9.0.23] myorg#art1;4.9.0.+
>
> Here is the resolve for art2 which is a tar.gz:
> [ivy:resolve] == resolving dependencies
> myorg#YourModule1;1.0.20101209112153->myorg#art2;4.9.0.+
> [internal->default]
> [ivy:resolve] main: Checking cache for: dependency: myorg#art2;4.9.0.+
> {internal=[default]}
> [ivy:resolve] no cached resolved revision for myorg#art2;4.9.0.+
> [ivy:resolve] don't use cache for myorg#art2;4.9.0.+: checkModified=true
> [ivy:resolve]           tried 
>/home/ivytest/.ivy2/local/myorg/art2/[revision]/ivy.xml
> [ivy:resolve]           tried
> /home/ivytest/.ivy2/local/myorg/art2/[revision]/art2-[revision].jar
> [ivy:resolve]   local: no ivy file nor artifact found for myorg#art2;4.9.0.+
>
>
> The only place the ivy.xml exists is in the parent directory, yet the
> jar resolves fine, but not the tar.gz.
>
> ~/.ivy2/local> find .
> .
> ./myorg
> ./myorg/art1
> ./myorg/art1/4.9.0.23
> ./myorg/art1/4.9.0.23/art1-4.9.0.23.pom.md5
> ./myorg/art1/4.9.0.23/art1-4.9.0.23.jar
> ./myorg/art1/4.9.0.23/art1-4.9.0.23.pom
> ./myorg/art1/4.9.0.23/art1-4.9.0.23.jar.md5
> ./myorg/art1/4.9.0.23/art1-4.9.0.23.pom.sha1
> ./myorg/art1/4.9.0.23/art1-4.9.0.23.jar.sha1
> ./myorg/YourModule
> ./myorg/YourModule/4.9.0.23
> ./myorg/YourModule/4.9.0.23/YourModule-4.9.0.23.pom.sha1
> ./myorg/YourModule/4.9.0.23/ivy.xml.sha1
> ./myorg/YourModule/4.9.0.23/YourModule-4.9.0.23.pom.md5
> ./myorg/YourModule/4.9.0.23/ivy.xml.md5
> ./myorg/YourModule/4.9.0.23/ivy.xml
> ./myorg/YourModule/4.9.0.23/YourModule-4.9.0.23.pom
> ./myorg/art2
> ./myorg/art2/4.9.0.23
> ./myorg/art2/4.9.0.23/art2-4.9.0.23.pom.md5
> ./myorg/art2/4.9.0.23/art2-4.9.0.23.tar.gz
> ./myorg/art2/4.9.0.23/art2-4.9.0.23.pom.sha1
> ./myorg/art2/4.9.0.23/art2-4.9.0.23.pom
> ./myorg/art2/4.9.0.23/art2-4.9.0.23.tar.gz.md5
> ./myorg/art2/4.9.0.23/art2-4.9.0.23.tar.gz.sha1
>
>
> The dependencies appear as follows:
>
>                <dependency org="myorg" name="art1" rev="4.9.0.+" 
>conf="internal" />
>                <dependency org="myorg" name="art2" rev="4.9.0.+" 
>conf="internal" />
>
>
>
> Publish definition:
>
> ivy.default.ivy.pattern [organization]/[module]/[revision]/ivy.xml
> ivy.default.artifact.pattern
> [organization]/[artifact]/[revision]/[artifact]-[revision].[ext]
>
> ivy.default.ivy.user.dir ${user.home}/.ivy2
> ivy.local.default.root ${ivy.default.ivy.user.dir}/local
>
>
>                <filesystem name="write-local-module" m2compatible="false">
>                        <artifact 
>pattern="${ivy.local.default.root}/${ivy.default.artifact.pattern}"
> />
>                        <ivy 
>pattern="${ivy.local.default.root}/${ivy.default.ivy.pattern}" />
>                </filesystem>
>
>
> Resolve definition:
>
> ivy.repository.releases releases
> ivy.repository.thirdparty internal
> ivy.repository.snapshots snapshots
>
> ivy.default.ivy.user.dir ${user.home}/.ivy2
> ivy.local.default.root ${ivy.default.ivy.user.dir}/local
> ivy.default.ivy.pattern [organization]/[module]/[revision]/ivy.xml
> ivy.default.artifact.pattern
> [organization]/[artifact]/[revision]/[artifact]-[revision].[ext]
>
>
> <ivysettings>
>        <properties file="${ivy.settings.dir}/ivy.properties" override="false" 
>/>
>        <settings defaultResolver="main" circularDependencyStrategy="warn" />
>
>        <resolvers>
>                <chain name="archiva">
>                        <ibiblio name="archiva-releases" m2compatible="true" 
>usepoms="true"
>                               
> root="${ivy.repository.host}/${ivy.repository.releases}"
>                                checkmodified="true" changingPattern=".*" />
>                        <ibiblio name="archiva-snapshots" m2compatible="true"
>                                usepoms="true" 
>root="${ivy.repository.host}/${ivy.repository.snapshots}"
>                                checkmodified="true" changingPattern=".*" />
>                        <ibiblio name="archiva-thirdparty" m2compatible="true"
>                                usepoms="true" 
>root="${ivy.repository.host}/${ivy.repository.thirdparty}" />
>                </chain>
>                <filesystem name="local" checkmodified="true"
>                        changingPattern=".*" m2compatible="false">
>                        <artifact 
>pattern="${ivy.local.default.root}/${ivy.default.artifact.pattern}"
> />
>                        <ivy 
>pattern="${ivy.local.default.root}/${ivy.default.ivy.pattern}" />
>                </filesystem>
>                <chain name="main" returnFirst="true">
>                        <resolver ref="local" />
>                        <resolver ref="archiva" />
>                </chain>
>        </resolvers>
> </ivysettings>
>



      

Mime
View raw message