ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Geoff Clitheroe <g.clithe...@gmail.com>
Subject Re: Building a Repo -- Excludes Question
Date Wed, 25 May 2011 00:04:24 GMT
I don't see a direct dependency on javax.activation for
cxf-rt-frontend-jaxws so something else is calling for it.

http://search.maven.org/#artifactdetails%7Corg.apache.cxf%7Ccxf-rt-frontend-jaxws%7C2.4.0%7Cjar

You will occasionally hit these problems.  You may want to check out
http://code.google.com/p/ivyroundup/

And to answer  the final question.  Yes!  Run a repo manager as a proxy.

http://maven.apache.org/repository-management.html

I'm most familiar with Archiva for this.  It has chains of remote
repos and they are proxied and cached locally.  Your Ivy settings just
then refer to the local Archiva repo

e.g.,

http://codegeo.org/repos/codegeo/build/trunk/ivysettings.xml

which is referring to all the repos we care about and making the
artifacts available in one place including the ones we publish:

http://codegeo.org/archiva/browse

This also gives you some options to do manual fixes for problems like
javax.activation


Cheers,
Geoff




On Wed, May 25, 2011 at 11:11 AM, Cody Casterline
<cody.casterline@gmail.com> wrote:
> I'm looking into switching to Ivy for managing our dependencies and I was
> happy to find this page:
> http://ant.apache.org/ivy/history/latest-milestone/tutorial/build-repository.html
> which describes how to create a local repository using ivy:install so that
> builds don't have to hit the network.  (Yay!)
>
> I grabbed
> https://svn.apache.org/repos/asf/ant/ivy/core/trunk/src/example/build-a-ivy-repositoryand
> started tweaking it to test my understanding, but I'm running into a
> couple issues.
>
> First, my dependencies:
>
>        <dependencies>
>                <dependency org="commons-io" name="commons-io" rev="1.4"/>
>                <dependency org="org.apache.cxf"
> name="cxf-rt-frontend-jaxws" rev="2.4.0">
>                <!--
>                        <exclude org="javax.activation"/>
>                -->
>                </dependency>
>        </dependencies>
>
>
> I've also switched ivysettings-basic.xml to use the local repository
> ('my-repository') by default.  (It doesn't seem that ivy:resolve or
> ivy:retrieve accept a resolver name as an option?  is ivy:install the only
> place where you can specify resolvers by name?)
>
> <ivysettings>
>        <settings       defaultCache="${ivy.cache.dir}/no-namespace"
>                        defaultResolver="my-repository"
>                        defaultConflictManager="all" />
>        <resolvers>
>                <filesystem name="my-repository">
>                        <ivy
> pattern="${dest.repo.dir}/no-namespace/[organisation]/[module]/ivys/ivy-[revision].xml"/>
>                        <artifact
> pattern="${dest.repo.dir}/no-namespace/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]"/>
>                </filesystem>
>                <ibiblio name="libraries" m2compatible="true" />
>        </resolvers>
> </ivysettings>
>
> My thinking is that I can define my dependencies, then try a build.  if the
> build can't resolve a dependency from my local repo, I can run ivy:install
> to install that dep. locally and try again.  This way I can iteratively
> build up my local repo.
>
> when I run ivy:install on org.apache.cxf#cxf-rt-frontend-jaxws;2.4.0, it
> installs lots of dependencies but fails with:
>
> [ivy:install] :: problems summary ::
> [ivy:install] :::: WARNINGS
> [ivy:install]           [NOT FOUND  ]
> javax.activation#activation;1.0.2!activation.jar (128ms)
> [ivy:install]   ==== libraries: tried
> [ivy:install]
> http://repo1.maven.org/maven2/javax/activation/activation/1.0.2/activation-1.0.2.jar
> [ivy:install]           ::::::::::::::::::::::::::::::::::::::::::::::
> [ivy:install]           ::              FAILED DOWNLOADS            ::
> [ivy:install]           :: ^ see resolution messages for details  ^ ::
> [ivy:install]           ::::::::::::::::::::::::::::::::::::::::::::::
> [ivy:install]           :: javax.activation#activation;1.0.2!activation.jar
> [ivy:install]           ::::::::::::::::::::::::::::::::::::::::::::::
>
> ... despite the fact that when I look at the ivy files in my repo, and the
> pom files on maven.org, they claim to exclude javax.activation.
>
> If I uncomment the extra exclude rule above, ivy:resolve will work.  Why
> does my exclude work where the ones in pom and ivy files didn't?
>
> Also, while I've got everyone's attention, is there an easier way to just
> tell Ivy to install all dependencies for a project into a repository?   If
> I've got them listed in ivy.xml, entering them manually into ivy:install
> commands seems redundant.  :)
>
> Thanks!
>

Mime
View raw message