ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maarten Coene <>
Subject Re: Addition of conf to dependencies changing transitive behaviour
Date Tue, 15 Jun 2010 19:38:36 GMT

glad to see you were able to solve this transitive issue.

We should probably add some documentation about which configurations are available for maven
modules and which ones you should use.
To know which are available and their meaning atm, you have to take a look in your ivy-cache
at the ivy.xml of such a maven module. Their you'll see why "*->default" didn't work as
you expected it would.

Could you give a bit more info about the last remark about using Ivy?
We can only improve things if we know what the issues are.


----- Original Message ----
From: uberpuppy <>
Sent: Tue, June 15, 2010 1:49:12 PM
Subject: Addition of conf to dependencies changing transitive behaviour

Hi all,

I'm building a series of heavily nested projects with ant and ivy, and had
got everything working nicely without configurations - i.e. the simplest
case. FYI, in all the following cases I get the same behaviour whether using
ivy inside ant or IvyDE in Eclipse.

so, having got the simplest case working I needed to introduce test
configurations. I added some relevant configurations and then focused on the
core dependencies required for all configurations. For these common
dependencies I tried:

<dependency ... transitive="true" conf="*->default"/> 

Except, bizarrely enough this stopped the transitive stuff working. Ivy
would resolve one level of nested dependencies and then just stop. Cue
google and the following attempt at a fix:

<dependecy ... transitive="true" conf="*->*" />

This then broke because it tried to download sources and javadoc - which we
don't publish into this repo - and stopping the build with an error against
the dependency resolution process. Again, google to the rescue and I try the

<dependecy ... transitive="true" conf="*->*,!sources,!javadoc" />

Ugly, but effective. Except! This works fine for 2 layers of dependency, but
fails on the 3rd. i.e. Project D depends on Project C which depends on
Project B which depends on Project A. 


I attach ivy to A, B and C. Then I try D... whoops! C and B resolve fine,
but not A! Wtf! Why does transitivity apply twice and the suddenly fail?

Can anyone suggest why I keep coming up against limits on dependency
transitiveness? Please don't point me at Ivy's tutorials etc. because I've
read those literally dozens of times now and they don't address these issues


p.s. An irrelevant whinge: I've had to write ant scripts to handle ivy's
gaping holes already and I'm seriously beginning to wonder whether I might
have to write a script for every ivy feature we use... which kinda spoils
the point of using ivy. Yeah, I'd have to write an entire build system, but
a) I've practically done that already and b) at least I'd know the quirks!
Sigh. Help greatly appreciated.
View this message in context:
Sent from the ivy-user mailing list archive at


View raw message