Maven:maven依赖jar包冲突处理
Maven多模块项目中偶尔会遇到这种问题:明明项目中相关的jar包已经通过pom.xml引进来了,还是报错找到不到相关的类的错误。这种时候,基本上可以断定是jar包冲突的问题。
很多情况下jar包会通过依赖传递或者是从父pom中继承而引进来,稍不注意,可能会出现引用的jar包版本不一致的问题,这个时候就会导致上述问题的出现。如下是一般的处理方式:
- 相同jar包的不同版本:使用exclusions排除掉冲突的版本包,参考如下配置。
- 不同jar包相同类名和package名:完全一样的类路径,但就是在不同的jar包中,这个时候也是先排除掉不需要的jar包,另外如果都是内部jar包的话,有可能是代码规范的问题,可能得需要重构。。。
1 <dependencies> 2 <dependency> 3 <groupId>org.springframework</groupId> 4 <artifactId>spring-core</artifactId> 5 <version>4.3.2.RELEASE</version> 6 <exclusions> 7 <exclusion> 8 <artifactId>commons-logging</artifactId> 9 <groupId>commons-logging</groupId> 10 </exclusion> 11 </exclusions> 12 </dependency> 13 </dependencies>