Hi All,

I have a complex dependency graph in which all dependencies are resolved 
dynamically (using Version Range Matcher  -  revConstraint="[1.1,2.0[" for 
example). I have a use case in which I need to override the revision of a 
particular transitive dependency from the root of my graph, without having to 
introduce a dependence on that transitive dependency in my root node. I'm 
hoping to use Ivy to drive SOA integration; that is, I'll be versioning web 
services, not binary artefacts at all!

My understanding of the documentation is that using the <override> element in 
my root node's <dependencies> element will achieve this:

http://ant.apache.org/ivy/history/latest-milestone/ivyfile/override.html

I'm puzzled however, by the results of my experiments with this. If I make the 
value of "rev" outside what is permitted by the "revConstraint" on that 
dependency, I get the following message:

[ivy:resolve] dependency descriptor has been mediated: dependency: 
com.nokia#MyDependency;1.1 {*=[*]} => dependency: com.nokia# MyDependency;0.9 
{*=[*]}

While this sounds like it's doing the job, the resulting report shows that this 
mediation has not occurred at all. If I set the "rev" in the <override> to a 
value that sits inside the "revConstraint", my desired use case, the above log 
message does not appear, and the report also shows that the override has been 
ignored.

Are <override> elements ignored for dynamic resolution? If so, does anybody 
know a way of achieving this given I have no conflicts?

Kind regards,

James

p.s. BTW - I love the pretty pictures I get from the Report that show our 
service dependency graphs.

Reply via email to