java - How does maven add transitive dependencies into classpath? -


i quite confused how maven handle transitive dependencies , how write classpath.

say if have 2 paths e (a,b,c,d,e ejb):
1. a<---b<---e (e dependent(comile) on b dependent on a)
2. a<---c<---d<---e (all dependencies compile dependencies)

question is: how e built, , artifacts in e's classpath(meta-inf).

thanks lot!

maven use "nearest definition" in determining version of dependency e use in build. official maven documentation:

"nearest definition" means version used closest 1 project in tree of dependencies, eg. if dependencies a, b, , c defined -> b -> c -> d 2.0 , -> e -> d 1.0, d 1.0 used when building because path d through e shorter. explicitly add dependency d 2.0 in force use of d 2.0

in example:

1. <--- b <--- e 1.0 2. <--- c <--- d <--- e 2.0 

the 1.0 version of dependency e used, because when building a path shorter version.


Comments