ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Kiesel <>
Subject Broken conflict manager strategy
Date Tue, 10 Jan 2012 09:20:23 GMT

given I have the following module structure:

* Module A ("the application")
 * depends on B ("a lib") in version "latest integration" (= 2 at build time)
   * which depends on C ("the framework") in a version "[1,3[" (= 3 at
build time)
 * depends on C in version "2" (= 2 at build time)

When I build A, I'd _naturally_ assume there are two options:

a) A overrules B and dependency on C will be used in version 2; this
would even be aligned with the version constraint expressed by B's
ivy.xml, but after built time the version constraint will be replaced
by the fixed version; revConstraint still holds that information but
is not being considered here.


b) A conflict happens
This behaviour can be triggered by using the "strict" conflict
manager; but strict is too strict here:-)

What happens in Ivy's default config is that version 3 is chosen (by
the "latest-revision" default conflict manager) because it's the
newest version.

Is there any way to make Ivy prefer direct version matches for built
dependencies, but in case this isn't sufficient take the original
revision constraint expression as an indicator whether the version
actually matches? Given that my build "A" sets the dependency to C to
a fixed version, I'd assume it just cannot easily have version 3
working, also.


View raw message