I have projects A, B, C, and D.  A is basically a database API that a
variety of projects use.  B depends on A, C depends on B and A, and D
depends on C and A.  When building project D, I could therefore
theoretically end up with as many as three different versions of A - one
each from the transitive dependencies of B and C, and another one from D's
explicit dependency.  What I want is for D to include the "latest" version
of A based on these three dependencies, so if B depends on A-3.1, C depends
on A-3.3, and D depends on A-3.2, the actual artifact on D's classpath will
be A-3.3.  Obviously exclusions and optional dependencies don't really do
what I want, because I don't know which dependency on A is the "latest".  Is
there a way to do anything remotely like this?

(Obviously, yes, I'm now aware that if this project were designed correctly,
there wouldn't be this web of transitive dependencies in the first place,
but fixing that isn't really possible at the moment.)

-- 
C. Benson Manica
[email protected]

Reply via email to