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,仅作记录。

总结

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

相关文章

  • 从Mybatis-Plus开始认识SerializedLambda的详细过程

    从Mybatis-Plus开始认识SerializedLambda的详细过程

    这篇文章主要介绍了从Mybatis-Plus开始认识SerializedLambda,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • 教你如何在IDEA 中添加 Maven 项目的 Archetype(解决添加不起作用的问题)

    教你如何在IDEA 中添加 Maven 项目的 Archetype(解决添加不起作用的问题)

    这篇文章主要介绍了如何在 IDEA 中添加 Maven 项目的 Archetype(解决添加不起作用的问题),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • Java MyBatis框架环境搭建详解

    Java MyBatis框架环境搭建详解

    MyBatis本是apache的一个开源项目iBatis,MyBatis环境的搭建有点麻烦,本章带你了解搭建过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
    2022-08-08
  • Java多线程文件分片下载实现的示例代码

    Java多线程文件分片下载实现的示例代码

    这篇文章主要介绍了Java多线程文件分片下载实现的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • gateway网关接口请求的校验方式

    gateway网关接口请求的校验方式

    这篇文章主要介绍了gateway网关接口请求的校验方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 关于Http持久连接和HttpClient连接池的深入理解

    关于Http持久连接和HttpClient连接池的深入理解

    众所周知,httpclient是java开发中非常常见的一种访问网络资源的方式了,下面这篇文章主要给大家介绍了关于Http持久连接和HttpClient连接池的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-05-05
  • centos下安装openjdk21的详细图文教程

    centos下安装openjdk21的详细图文教程

    这篇文章主要介绍了centos下安装openjdk21的相关资料,文章详细介绍了如何手动下载、解压和配置OpenJDK 21,包括下载OpenJDK、上传到指定目录、解压、编辑环境变量和验证安装成功的过程,需要的朋友可以参考下
    2024-12-12
  • Java内部类的继承(全)

    Java内部类的继承(全)

    这篇文章主要介绍了Java内部类的继承,大家都知道JAVA内部类的构造器必须连接指向其外围类对象的引用,所以在继承内部类的时候,需要在导出类的构造器中手动加入对基类构造器的调用,需要的朋友可以参考下
    2015-07-07
  • Java有序的Map LinkedHashMap用法详解

    Java有序的Map LinkedHashMap用法详解

    LinkedHashMap是Java提供的一个集合类,它继承自HashMap,并在HashMap基础上维护一条双向链表,本文给大家介绍java 有序的Map LinkedHashMap简介,感兴趣的朋友一起看看吧
    2024-01-01
  • Spring中@DependsOn注解的作用及实现原理解析

    Spring中@DependsOn注解的作用及实现原理解析

    这篇文章主要介绍了Spring中@DependsOn注解的作用及实现原理解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论