快速解决maven依赖冲突问题

背景

在linux系统部署启动一个旧应用时报错

java.lang.IllegalStateException: Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on the class path, preempting StackOverflowError.

看报错信息应该是log4j-over-slf4j.jar和slf4j-log4j12.jar依赖冲突了

解决思路

首先要知道这两个依赖分别在哪里引入,如果对项目依赖不太熟悉的话手动排查比较困难,我们可以通过idea的maven插件maven helper来快速帮我们排查错误

  1. 安装插件
    在idea的插件市场搜索maven helper安装后重启即可
    快速解决maven依赖冲突问题_第1张图片
  2. 查找冲突的依赖
    点击pom.xml,再点击代码框的denpency Analyzer
    快速解决maven依赖冲突问题_第2张图片
    进来看到当前有挺多的依赖冲突,但我们先不管它们,解决上面的报错先
    快速解决maven依赖冲突问题_第3张图片
  3. 排除依赖
    先选择All Dependencies as tree,我们选择排除slf4j-log4j12这个依赖,可以在搜索框中输入slf4j-log4j12过滤,看到有些地方引入了
    快速解决maven依赖冲突问题_第4张图片
    在下面的其中一个选项中右键,点击exclude排除此依赖即可,插件会自动帮助我们在pom.xml文件中排除对应的依赖
    快速解决maven依赖冲突问题_第5张图片
    快速解决maven依赖冲突问题_第6张图片
    到此就解决问题了,如过还有其他的冲突,继续排除即可。

你可能感兴趣的:(日常,maven,log4j,java)