由于依赖的传递性,就会产生依赖冲突,那么maven会怎样处理冲突呢?
短路优先
顾名思义,就是选择路径短的进行依赖。
示例
还是用上篇文章中的三个项目。
我们在中央仓库(https://mvnrepository.com)中随便找一个jar,我们使用Apache Commons IO的2.0版本和2.5版本
在project01中依赖commons-io 2.0

在project02中依赖commons-io 2.5版本

porject03依赖porject02
porject02依赖porject01
此时根据短路优先原则 porject03则会依赖2.5版本。

先声明,先使用。
在pom.xml 谁最早声明依赖就使用谁。
示例
在project03中去掉排除依赖,我们让project03 同时依赖project01和project02

project01依赖commons-io 2.0版本
project02依赖commons-io 2.5版本
根据先声明先使用原则 project03则应该依赖project01中的commons-io 2.0版本