解决Maven依赖冲突的方法

 更新时间:2023年05月15日 11:12:30   作者:千云  
本文主要介绍了解决Maven依赖冲突的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

背景

在项目中screw-core依赖时发生了冲突,控制台指出是log4j产生的依赖冲突,导致程序报错无法运行,是一个典型的maven依赖冲突,基于这个问题进行

处理

处理首先查看控制台报错日志

0581f3b44a0a2055c4d4b0b0587ae213.jpg

基于这个报错在pom依赖中查看一下

image.png

screw-corey依赖是这次新增加的依赖,也就是说依赖冲突是由于screw-core依赖和原有的依赖产生了冲突,具体是哪个依赖,我们打开screw-core依赖进行查看他的依赖,奇怪的是并没有看到screw-core中存在log4j的引用,这时候想到一个idea的插件 maven-helper

maven-helper这个插件是专门帮助我们解决maven依赖冲突的插件,使用时可以看到具体的依赖冲突是哪些依赖,我进行了安装使用

image.png

首先进入pom文件,安装插件后会看到左下角有一个Dependency Analyzer按钮,点击一下,我们可以看到依赖冲突

image.png

依赖冲突有很多,其实这里面的依赖冲突就是不同的依赖引用了不同的版本jar包,但是很多是没有影响的,这里面差生影响的就是log4j-api,我们看到项目中有两个版本,一个是2.17.0,一个是2.11.2

image.png

点击2.17.0jump to source 可以看到他的引用,根据pom发现他是在引入screw-core之前就已经存在的依赖,这就说明随着screw-corey依赖的引入,导入了2.11.2版本的log4j,进而导致依赖冲突,然而在screw-core的依赖引入中没有看到,就说明是他的下一层架依赖引入或者多层级依赖引入导致的问题。这时候我采用了排除法,对screw-core中类似log4j的依赖逐个排除

image.png

排除掉log4j依赖,问题解决

回顾

对于maven-helper的idea插件,在市面上是比较火的,但是使用起来并没有达到我理想中的期望,比如直接找到冲突的依赖,直接排除掉,看了些网上的教程,对于简单的以来冲突maven-helper可以较快的定位到,但是对于向我遇到的问题,还是需要慢慢的去排查,总之问题解决了,也算是很有收获。

到此这篇关于解决Maven依赖冲突的方法的文章就介绍到这了,更多相关Maven依赖冲突内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • idea运行vue项目设置自定义浏览器方式

    idea运行vue项目设置自定义浏览器方式

    这篇文章主要介绍了idea运行vue项目设置自定义浏览器方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Spring实现加法计算器和用户登录功能

    Spring实现加法计算器和用户登录功能

    在前后端分离的Web开发模式中,接口(API)扮演着至关重要的角色,它是前后端交互的桥梁,创建加法计算器和用户登录功能时,介绍了接口测试和问题解决的一般流程,如使用Postman测试接口、查看日志、处理缓存问题等,确保开发过程中的高效协作和问题快速定位
    2024-10-10
  • Java设计模式之策略模式示例详解

    Java设计模式之策略模式示例详解

    策略模式属于Java 23种设计模式中行为模式之一,该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。本文将通过示例详细讲解这一模式,需要的可以参考一下
    2022-08-08
  • java项目jar包与jdk的版本不兼容的问题解决

    java项目jar包与jdk的版本不兼容的问题解决

    这篇文章主要介绍了java项目jar包与jdk的版本不兼容的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Spring使用event-stream进行数据推送

    Spring使用event-stream进行数据推送

    这篇文章主要介绍了Spring使用event-stream进行数据推送,前端使用EventSource方式向后台发送请求,后端接收到之后使用event-stream方式流式返回,文中有相关的代码示例供大家参考,需要的朋友可以参考下
    2024-03-03
  • Maven学习----Maven安装与环境变量配置教程

    Maven学习----Maven安装与环境变量配置教程

    这篇文章主要给大家介绍了关于如何利用Maven入手Spring Boot第一个程序的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • 详解Intellij IDEA的Facets和Artifacts

    详解Intellij IDEA的Facets和Artifacts

    这篇文章主要介绍了Intellij IDEA的Facets和Artifacts的相关知识,本文通过实例给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-09-09
  • 深入理解springboot中配置文件application.properties

    深入理解springboot中配置文件application.properties

    本文主要介绍了springboot中配置文件application.properties,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • eclipse启动一个Springboot项目

    eclipse启动一个Springboot项目

    本文主要介绍了eclipse启动一个Springboot项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Java封装公共Result结果返回类的实现

    Java封装公共Result结果返回类的实现

    在使用Java开发接口请求中,我们需要对请求进行进行统一返回值,这时候我们自己封装一个统一的Result返回类,本文主要介绍了Java封装公共Result结果返回类的实现,感兴趣的可以了解一下
    2023-01-01

最新评论