maven中的两个特性
1. 第一原则: 最短路径优先原则
“最短路径优先”意味着项目依赖关系树中路径最短的版本会被使用
例如,假设A、B、C之间的依赖关系是A->B->C->D(2.0) 和 A->E->D(1.0),那么D(1.0)会被使用,因为A通过E到D的路径更短
2.第二原则:最先申明原则
依赖路径长度是一样的时候,第一原则不能解决所有问题,比如这样的依赖关系:A->B->Y(1.0),A->C->Y(2.0),Y(1.0)和Y(2.0)的依赖路径长度是一样的,都为2。那么到底谁会被解析使用呢?在maven2.0.8及之前的版本中,这是不确定的,但是maven2.0.9开始,为了尽可能避免构建的不确定性,maven定义了依赖调解的第二原则:第一申明者优先。在依赖路径长度相等的前提下,在POM中依赖声明的顺序决定了谁会被解析使用。顺序最靠前的那个依赖优胜。
3.补充
同一个pom依赖中引用了同一个jar包的不同版本的时候,后引入的会被导入,先引入的则不会。
本文来自博客园,作者:orangeScc,转载请注明原文链接:https://www.cnblogs.com/ashScc/p/15398470.html