idea如何解决maven依赖冲突

 更新时间:2023年12月16日 15:09:40   作者:清茶_  
这篇文章主要介绍了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,仅作记录。

总结

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

相关文章

  • Spring AOP 后置通知修改响应httpstatus方式

    Spring AOP 后置通知修改响应httpstatus方式

    这篇文章主要介绍了Spring AOP 后置通知修改响应httpstatus方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java 方法签名详解及实例代码

    Java 方法签名详解及实例代码

    这篇文章主要介绍了 Java 方法签名详解及实例代码的相关资料,需要的朋友可以参考下
    2016-10-10
  • Springboot 2.x RabbitTemplate默认消息持久化的原因解析

    Springboot 2.x RabbitTemplate默认消息持久化的原因解析

    这篇文章主要介绍了Springboot 2.x RabbitTemplate默认消息持久化的原因解析,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 浅谈两个jar包中包含完全相同的包名和类名的加载问题

    浅谈两个jar包中包含完全相同的包名和类名的加载问题

    下面小编就为大家带来一篇浅谈两个jar包中包含完全相同的包名和类名的加载问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 解决idea 从mapper方法直接点进xml文件的问题

    解决idea 从mapper方法直接点进xml文件的问题

    这篇文章主要介绍了解决idea 从mapper方法直接点进xml文件的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • SpringBoot内存数据导出成Excel的实现方法

    SpringBoot内存数据导出成Excel的实现方法

    这篇文章主要给大家介绍了关于SpringBoot内存数据导出成Excel的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 详解spring boot应用启动原理分析

    详解spring boot应用启动原理分析

    这篇文章主要介绍了详解spring boot应用启动原理分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 详解Java的Spring框架中bean的注入集合

    详解Java的Spring框架中bean的注入集合

    这篇文章主要介绍了详解Java的Spring框架中bean的注入集合,Spring是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • Java两种方式实现动态代理

    Java两种方式实现动态代理

    Java 在 java.lang.reflect 包中有自己的代理支持,该类(Proxy.java)用于动态生成代理类,只需传入目标接口、目标接口的类加载器以及 InvocationHandler 便可为目标接口生成代理类及代理对象。我们称这个Java技术为:动态代理
    2020-10-10
  • Java 读取指定路径的文本文件并返回String的方法

    Java 读取指定路径的文本文件并返回String的方法

    今天小编就为大家分享一篇Java 读取指定路径的文本文件并返回String的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07

最新评论