您好,登录后才能下订单哦!
今天小编给大家分享的是如何解决Maven依赖冲突,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。
背景
处理
回顾
在项目中screw-core依赖时发生了冲突,控制台指出是log4j产生的依赖冲突,导致程序报错无法运行,是一个典型的maven依赖冲突,基于这个问题进行
处理首先查看控制台报错日志
基于这个报错在pom依赖中查看一下
screw-corey依赖是这次新增加的依赖,也就是说依赖冲突是由于screw-core依赖和原有的依赖产生了冲突,具体是哪个依赖,我们打开screw-core依赖进行查看他的依赖,奇怪的是并没有看到screw-core中存在log4j的引用,这时候想到一个idea的插件 maven-helper
maven-helper这个插件是专门帮助我们解决maven依赖冲突的插件,使用时可以看到具体的依赖冲突是哪些依赖,我进行了安装使用
首先进入pom文件,安装插件后会看到左下角有一个Dependency Analyzer按钮,点击一下,我们可以看到依赖冲突
依赖冲突有很多,其实这里面的依赖冲突就是不同的依赖引用了不同的版本jar包,但是很多是没有影响的,这里面差生影响的就是log4j-api,我们看到项目中有两个版本,一个是2.17.0,一个是2.11.2
点击2.17.0jump to source 可以看到他的引用,根据pom发现他是在引入screw-core之前就已经存在的依赖,这就说明随着screw-corey依赖的引入,导入了2.11.2版本的log4j,进而导致依赖冲突,然而在screw-core的依赖引入中没有看到,就说明是他的下一层架依赖引入或者多层级依赖引入导致的问题。这时候我采用了排除法,对screw-core中类似log4j的依赖逐个排除
排除掉log4j依赖,问题解决
对于maven-helper的idea插件,在市面上是比较火的,但是使用起来并没有达到我理想中的期望,比如直接找到冲突的依赖,直接排除掉,看了些网上的教程,对于简单的以来冲突maven-helper可以较快的定位到,但是对于向我遇到的问题,还是需要慢慢的去排查,总之问题解决了,也算是很有收获。
关于如何解决Maven依赖冲突就分享到这里了,希望以上内容可以对大家有一定的参考价值,可以学以致用。如果喜欢本篇文章,不妨把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。