maven包冲突
- 作者: 771604958
- 来源: 51数据库
- 2020-09-23
1.确定出了问题的jar包名称。通常可以在eclipse中查找冲突的类有在哪些依赖包里面出现了。并确定实际要使用的是那个包,冲突的包有哪些。 2.通过mvn dependency:tree > tree.txt 导出全部的依赖。 3.在导出的依赖文件中,查找问题相关的jar。
maven管理jar包依赖的时候,假如你的依赖包a需要间接依赖b的1.0版本,而你的工程里又需要用到b的2.0版本,这个时候就可能会出现运行时jar冲突的异常,会报java.lang.nosuchmethoderror或者 java.lang.classnotfoundexception 、java.lang.noclassdeffounderror
解决方法一:
第一步:查询冲突jar包的依赖树
mvn dependency:tree -dverbose -dincludes=org.springframework:spring
第二步:在pom里找到相应的jar去掉他的依赖传递
方法二:在父级pom中使用dependencymanagement管理公用的jar版本,子类中引入自己需要的jar版本,maven会优先使用子类的jar。
maven管理jar包依赖的时候,假如你的依赖包a需要间接依赖b的1.0版本,而你的工程里又需要用到b的2.0版本,这个时候就可能会出现运行时jar冲突的异常,会报java.lang.nosuchmethoderror或者 java.lang.classnotfoundexception 、java.lang.noclassdeffounderror
第一步:查询冲突jar包的依赖树
mvn dependency:tree -dverbose -dincludes=org.springframework:spring
第二步:在pom里找到相应的jar去掉他的依赖传递
推荐阅读
