Hello,

we are currently migrating from Ant to Maven and are encountering some 
dependency resolution issues.

According to the documentation Maven resolves by 
nearest-to-root-algorithm, so given a project structure like

P -> A (1.1.0) -> B (1.5.0)
P -> B (1.3.0)

meaning P depends on A in version 1.1 etc. would resolve A (1.1) and B 
(1.3). 

Our semantics for compatibility assumes different major numbers as 
generally incompatible, which should result in a build failure. All 
different minor numbers are treatet as generally backwards compatible.

A project setup like
 
P -> A (1.1.0) -> B (2.1.0)
P -> B (1.3.0)

should cause a build failure, a setup like

P -> A (1.1.0) -> B (1.5.0)
P -> B (1.3.0)

should not, but we have to guarantee, that B (1.5.0) is resolved, not B 
(1.3.0), which is not the standard maven dependency resolution.

Has anyone an idea how to solve this?

Regards

Frank Jakop

Reply via email to