Idea解决maven依赖包冲突问题

转载I地址:http://blog.sina.com.cn/s/blog_4d1085940102x2gx.html

先下结论,现在能百度到的依赖包解决办法全他妈是垃圾。首先是检查依赖包的程序,压根不好使;另外一个使用mvn dependency:tree > tree.txt 把依赖树都打印出来的,也是垃圾,因为打印出来的最终树并没有包涵所有的依赖包。而且就像我说的,码农的语文老师都是傻逼。写problem solving的文章首先要把问题描述清楚,其次再在解决问题中把道理讲明白,上来就是这么干这么干,而且缺失步骤,你不是傻逼谁是傻逼。


拿我遇到的问题来说一下,公司的项目,使用elasticsearch做索引,在实际项目启动中它的Netty4Utils工具类初始化,所用到的类报NoSuchMethodError。直接搜索一下这个类,发现在项目下起码引入了三个版本的netty,分别是:4.0.24、4.029、4.1.7。我查了具体在使用netty的类应该在4.1.7版本的包里,所以我们的目标就是要把4.0.24 和4.0.29的依赖从项目中解决掉,但这俩版本都是间接依赖,很不好找。
在网上找到多种解决方案,首先用mvn dependency:tree 打印出依赖树,很不幸,丫能找到4.1.7和4.0.29的依赖关系,但没找到24的,所以这个破官方工具也是有深度限制的,一旦依赖关系太深丫也找不着。另一个解决方案是用IDEA本身的diagram->show dependency,这个更不好用,自动生成一个鬼画符似的依赖关系图,如果项目大了根本看不过来。

最后找到了个特别牛逼的工具,是一个IDEA插件,叫Maven Helper,在 File->Settings->Plugins里安装就好了,另外这个工具依赖maven intergration,在安装后一定也要把它打上勾,然后重启IDEA。重启后,你打开你的pom.xml,编辑器左下角会多出来个“Dependency Analyzer”,打开后会发现,丫把所有依赖包的版本和冲突全都列出来了,而且还会把冲突包的路径显示出来,这时候你只要把冲突包的所有低版本从pom中exclude掉就好了,太他妈好用了。
如果还有不明白的留言,我看到了会更新回答。
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值