Maven 依赖冲突

由于依赖的传递性,就会产生依赖冲突,那么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版本

这里写图片描述

猜你喜欢

转载自blog.csdn.net/sinat_25926481/article/details/76927111
今日推荐