maven jar包冲突常见报错及解决方法

见到如下错误,可以想到是不是jar包冲突

1.java.lang.NoSuchMethodError
2.java.lang.ClassNotFoundException
3.java.lang.NoClassDefFoundError

解决办法

以一个错误为例:

解决方法:
1.首先定位到具体类。查到org.apache.httpHost对应的maven依赖。在intellij idea中search everywhere输入类名,找到依赖。或者百度一下。

2.打开httpHost类,找到具体的报错位置。根据错误信息,HttpRoute的106行报错。找到错误。注意,错误信息依据提示了jar包版本为4.4,所以找到4.4所对应的类。

可以看到错误位置,点击进入此类,定位到具体jar包。




可以看到4.1.4版本到httpcore并没有需要的构造方法。系统里存在两个版本,一个是4.1,一个是4.4,系统调到4.1的找不到新方法,所以报noSuchMethodException().
所以我们要做的就是在maven中排除掉。4.1.4版本。
3.通过名字:com.alibaba.external:httpcomponent.httpcore我们知道,groupId为冒号前的com.alibaba.external,artifiedId为冒号后的:httpcomponent.httpcore
我们打出maven tree进行全文搜索即可定位到在哪个依赖的gav中排除。进入pom所在目录,mvn dependency:tree > treeweb.txt 就可以把tree信息存在了txt文件中,再全文搜索com.alibaba.external即可。找到具体位置后,定位到在哪个依赖中排除。
4.排除依赖
<exclusions>
	<exclusion>
			<groupId>com.alibaba.external</groupId>
			<artifactId>httpcomponents.httpcore</artifactId>
	</exclusion>
</exclusions>

5.重新导入maven依赖就可以了

注意

一个类的jar包名可以随意改,所以一定注意,不能通过jar报名来找,要通过类名找,然后定位到具体的依赖jar包进行排除。





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值