Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.1.0
-
Linux / ant 1.7.0
Description
Originally described in ivy-user list : http://old.nabble.com/Transitive-resolving-issue---td27984462.html
Here just a part of the discussion that explain the problem and the temporary work around :
Consider the following use case :
moduleA has one of its dependencies like this :
<dependency org="log4j" name="log4j" rev="1.2.14" transitive="false"/>
moduleB has one of its dependencies like this :
<dependency org="log4j" name="log4j" rev="1.2.15" transitive="false"/>
While moduleC use moduleA and moduleB I have something like this :
<dependency org="moduleA.org" name="moduleA" rev="moduleA.rev"/>
<dependency org="moduleB.org" name="moduleB" rev="moduleB.rev"/>
This seems to be very banal BUT, when running the ivy:resolve task the
log4j-1.2.15 evicts the log4j-1.2.14 which seems to be a good thing!
but thereafter the resolve task does not consider the transitivity has false
and try to resolve all the dependencies of log4j-1.2.15
If I remove moduleA.org and use only moduleB.org then the resolve task
behave correctly (I mean there is no resolution of transitives
dependencies).
The reverse case is also true.
A work-around is available by resolving conflict explicitly with something like :
<conflict org="moduleA.org" module="moduleA" rev="moduleA.rev"/>