Le 13 août 2010 17:35:50 UTC+2, C. Benson Manica <cbman...@gmail.com> a
écrit :

> 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.


A
 |  \¯¯¯¯¯\
B   \          \
 \     \          \
    ¯C         \
          ¯¯¯¯D

> When building project D, I could therefore
> theoretically end up with as many as three different versions of A - one
>
???
I don't see why. B depends on A, true, but A isn't built differently because
it's used as a dependency by B or C or D.
Have you seen hundreds of hibernate versions, since this project is used
very often? Nope...

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?
>

Well, I guess I know better understand what you'd like to do.
In short, no, it's not possible since it's related to the artifact version
resolution algorithm (shortest path to groupId/artifactId is the version to
be used).
The simplest solution is to repeat the wished GAV in the current artifact
you want to build. I'm not sure there's a simple solution to handle this,
apart from playing with variables/custom plugin. Without the fact that using
variables in versions can be a bad practice for build reproducibility.


>
> (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.)
>

Well, having dependencies isn't a problem.

Cheers.
PS : would be a bit more polite to say hello, and end by thanks your
request. This way is a bit harsh in my opinion.

-- 
Baptiste <Batmat> MATHUS - http://batmat.net
Sauvez un arbre,
Mangez un castor !

Reply via email to