maven确实是一个好用的项目管理工具,相比较传统的JAVAIDE,不需要你提前下载依赖包,只需要在配置文件中添加即可自动下载。但由于maven的传递性依赖特性,maven在下载某一个依赖包时,会连同这个jar包的依赖包一起下载下来,由此也带来了jar包冲突的问题。
解决方法:
1、查看依赖关系:
如果你是使用eclipse来做开发,你可以右键点击你的工程,然后选在run as -> maven build,在Goals的框里填入dependency:tree,回车运行即可。
如果不是,使用命令行也可以,使用命令mvn dependency:tree
2、取出冲突的依赖包
在pom.xml中引用的包中加入exclusion,排除依赖,例如:
1 <!-- 去除单个依赖 --> 2 <dependency> 3 <groupId>com.alibaba</groupId> 4 <artifactId>dubbo</artifactId> 5 <version>2.5.3</version> 6 <exclusions> 7 <exclusion> 8 <artifactId>spring</artifactId> 9 <groupId>org.springframework</groupId> 10 </exclusion> 11 </exclusions> 12 </dependency> 13 <!-- 去除全部依赖 --> 14 <dependency> 15 <groupId>com.alibaba</groupId> 16 <artifactId>dubbo</artifactId> 17 <version>2.5.3</version> 18 <exclusions> 19 <exclusion> 20 <artifactId>*</artifactId> 21 <groupId>*</groupId> 22 </exclusion> 23 </exclusions> 24 </dependency>