2018.10.23
前言
A ---> B ---> C
|_____________↑
某个项目里,A模块依赖于B模块和C模块,B模块也依赖于C模块。它们各自都会依赖某些相同第三方库,如hadoop-common,但版本不完全一致。
方法
一般是因为依赖冲突。在这个case里,通过分析dependencyTree(mvn dependency:tree > C:\dependencyTree.txt
1),发现是A和B分别依赖于不同版本的库。在pom中exclude解决了该问题:
<dependency>
<groupId>B.groupId</group>
<artifactId>B.artifactId</artifactId>
<version>xx-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>conflict.groupId</groupId>
<artifactId>conflict.artifactId</artifactId>
</exclusion>
</exclusions>
</dependency>
参考阅读
- https://blog.csdn.net/strawbingo/article/details/2474790
- http://files.zeroturnaround.com/pdf/Maven-cheat-sheet.pdf