最近在一个老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,仅作记录。

idea解决maven依赖冲突相关推荐

  1. 什么是Maven依赖冲突,如何解决Maven依赖冲突

    在解决冲突之前首先我们要知道什么是依赖冲突,这样可以更好的去锁定bug原因.下面通过一个代码示例来真正展示出依赖冲突. 目录 依赖冲突代码演示 1.添加依赖 2.观察依赖的层次结构 3.运行项目jra ...

  2. idea导入maven项目依赖报错_解决Maven依赖冲突的好帮手,这款IDEA插件了解一下?

    1.何为依赖冲突 Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的.Maven的依赖机制会导致Jar包的冲突. 举个例子,现在你的项目中,使用了两个Jar包,分别是A和B.现在A需要依赖 ...

  3. Maven依赖原则及如何解决Maven依赖冲突

    前言 在大数据应用中,现在发现依赖关系非常复杂,在上线之前很长测试,前一段时间在部署udf 出现了导致生产Hiveserver2 宕机问题,出现严重事故.现在就咨询研究一下.Maven虽然已经诞生多年 ...

  4. 又出现依赖冲突?试试 IDEA 解决 Maven 依赖冲突的高能神器!

    以下文章来源方志朋的博客,回复"666"获面试宝典 1.何为依赖冲突 Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的.Maven的依赖机制会导致Jar包的冲突.举个 ...

  5. 是时候装逼了,试试 IDEA 解决 Maven 依赖冲突的高能神器!

    点击关注公众号,Java干货及时送达 来源 | segmentfault.com/a/1190000017542396 1.何为依赖冲突 Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的 ...

  6. 解决Maven依赖冲突的好帮手,这款IDEA插件了解一下?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:桔子214032 segmentfault.com/ ...

  7. 解决 Maven 依赖冲突的好帮手,必须了解一下!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:桔子214032 sf.com/a/119000001754 ...

  8. 解决Maven依赖冲突的好帮手,必须了解一下!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 桔子214032 来源 | http://su ...

  9. 如何解决Maven依赖冲突

    一.Java常见包冲突异常: AbstractMethodError NoClassDefFoundError ClassNotFoundException LinkageError 二.冲突分析 像 ...

最新文章

  1. 下载到FPGA内的文件格式
  2. 分布式事务、分布式锁、分布式session
  3. irobot擦地机器人故障_iRobot擦地机器人:只会擦地并不“奢侈”
  4. ubuntu查看python版本-Ubuntu18.04下python版本完美切换的解决方法
  5. 如何从零构建实时的个性化推荐系统?
  6. Linux 查看电脑基本配置
  7. OpenGL 笔记1 固定管线实例 + 双缓存测试实例
  8. C# 任务栏的相关信息
  9. 在JDK 9中将InputStream传输到OutputStream
  10. C# GDI+ 实现图片分隔
  11. 不愿意和别人打交道_参加完孩子学校的运动会,宝妈吐槽贫富圈子差距大,不适合打交道...
  12. 编程语言中,差、交、并、自然连接、选择、投影、笛卡尔积分别都是什么运算...
  13. Django 3 配置日志器,时区,修改静态文件,创建应用
  14. NSString字符串处理
  15. python numpy.linalg.norm函数的用法
  16. 人类历史上最有影响力的五个数据可视化信息图
  17. 取消Word自动首字母大写步骤
  18. keil编译错误:Error:Flash DownLoad failed - “Cortex-M4“
  19. Android Activity 生命周期和重要的相关函数(基础一)
  20. 【matlab】全面总结:MATLAB如何画出漂亮的图

热门文章

  1. 今天到下次生日中间隔的天数C++
  2. python统计excel某一列不同类别数量
  3. 专访|威威玮炜蜜汁同框的背后,看ofo小黄车的野心与坚持
  4. 用户行为分析需要知道的几个埋点小技巧
  5. 到目前为止,区块链的发展的经历了几个阶段?
  6. Ubuntu18.04——正确安装英伟达(NVIDIA)显卡驱动的一种简便方法
  7. 大师对攻读研究生的看法
  8. Wireshark 抓包分析 HTTP 请求、响应报文格式
  9. iOS开发-图片拉伸的实现
  10. 40天,编码器效率优化100倍,字节跳动这样拿下国际比赛4项第一