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包的不同版本的时候,后引入的会被导入,先引入的则不会。

posted @ 2021-10-12 16:30  orangeScc  阅读(39)  评论(0编辑  收藏  举报