ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maarten Coene <>
Subject Re: Conflict managers - using revConstraints?
Date Wed, 25 Mar 2009 23:23:03 GMT


I don't know if it will solve your problem, but could you set your resolveMode to "dynamic"?
This will tell Ivy to use the revConstraint attribute rather than the revision attribute.
<ivy:resolve resolveMode="dynamic" ... />


----- Original Message ----
From: Stephen Woods <>
To: ivy-user <>
Sent: Wednesday, March 25, 2009 7:12:12 PM
Subject: Conflict managers - using revConstraints?

I have some questions about conflict managers...
Here's my situation

   - Module A has a dependency to Spring revision "[2.0.2, )"... essentially
   indicating that it can use version "2.0.2" or later of Spring.
   - Module A is published to a shared repository, and the revision is
   set to "2.5.6" (because that is the latest in the repository at that time)
   with a revConstraint of "[2.0.2,)".
   - Module B is dependent on Module A
   - Module B has a dependency to Spring revision "2.0.2"... essentially
   indicating that is can only be used with version 2.0.2.
   - I set a latestCompatible conflict manager on Spring

Now, what I would hope that would happen is that Spring 2.0.2 would be
ultimately selected since its the latest version that is compatible between
both Module A and B. But that's not what happens... Instead, it appears that
since the published Module A has a revision of 2.5.6, it gets blacklisted
out right, and the build fails because Ivy says there are no compatible
versions between Module A and B.

So my questions are... is there another conflict manager that I should
consider using (i.e. something that takes into consideration the
revConstraint)? If not, is the Ivy conflict manager framework sufficiently
flexible enough to allow me to write my own conflict manager to handle this
situation (I stepped through the latestCompatible conflict manager with a
debugger and it looked pretty hairy)? Is there any documentation out there
that explains how conflict managers work (other than the code and the
official ivy docs)?

Though this may only be impacting me at the moment, I think this is a
showstopper for anyone attempting to use Ivy in an environment with
any transitive version conflicts.

Any insight would be greatly appreciated. Thanks!



View raw message