如何解决Maven依赖冲突

2023-05-30 15:54:15 依赖 冲突 如何解决

今天小编给大家分享的是如何解决Maven依赖冲突,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。

目录

  • 背景

  • 处理

  • 回顾

背景

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

处理

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

如何解决Maven依赖冲突

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

如何解决Maven依赖冲突

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

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

如何解决Maven依赖冲突

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

如何解决Maven依赖冲突

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

如何解决Maven依赖冲突

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

如何解决Maven依赖冲突

排除掉log4j依赖,问题解决

回顾

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

相关文章