java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > idea解决maven依赖冲突

idea如何解决maven依赖冲突

作者:清茶_

这篇文章主要介绍了idea如何解决maven依赖冲突问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

最近在一个老spring项目上面需要适配一个新功能,过程中也需要升级spring的版本,然后最后就导致maven的依赖包很乱,同一个包存在多个版本,本文就记录下使用idea解决maven的依赖冲突,同时记录下assembly打包插件的坑。

依赖冲突解决

首先打开pom文件,然后右键按如下图选择进入到该pom文件的整个依赖关系图

依赖关系图一般都很大,基本看不清,如下:

如果你知道哪些包产生冲突,那么mac下可直接common+f快捷搜索

然后找到对应的包排除即可,这里的红色虚线即表示与哪些jar包产生冲突,如下图可以看到spring-aop存在两个版本,导致冲突,排除即可:

此时pom文件中会自动排除,在对应的依赖上会增加exclusion标签

ps:如果你不知道哪些jar包产生冲突,那么需要你首先将整个依赖图变成1:1,这样会看的清楚点

assembly插件版本的坑

改完所有依赖冲突后,以spring为例,即maven中将spring的版本都已更改为4.2.0,但本地打了包验证发现部分jar包仍然依赖了4.1.9的spring,即spring升级前的版本,这就非常奇怪,通过mvn dependency:tree -D output=test.txt尝试输出依赖树,发现依赖树中也都是正确的,即都是4.2.0,并没有4.1.9的spring包。

既然本地依赖都是正确的,那么出问题的可能就在打包的过程中,由于我们项目使用到了assembly插件,初步怀疑与它的版本有关,尝试在某个进程下升级了版本号,果然生效了...猜想估计低版本的assembly在打包过程中可能不会去下载高版本的spring把,升级之前的assembly插件版本为2.6,升级后为3.1.1,仅作记录。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文