IntelliJ中Maven项目编译报错:SLF4J存在多个绑定
解决Maven项目SLF4J多绑定冲突问题
执行mvn install或mvn install -DskipTests时,SLF4J抛出多绑定冲突错误,具体日志如下:
SLF4J: Class Path contains multiple SLF4J bindings.
SLF4J: Link found in [jar:file:/C:/Users/admin/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Link found in [jar:file:/C:/Users/admin/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.17.1/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
错误截图:
解决步骤
- 定位冲突依赖:打开IntelliJ的Maven视图,使用
Dependency Analyzer搜索slf4j,查看哪些第三方依赖引入了slf4j-log4j12和log4j-slf4j-impl这两个冲突绑定。 - 排除冗余绑定:在项目pom.xml中,找到引入冲突jar的依赖节点,添加
<exclusions>标签移除其中一个绑定。例如要保留log4j2的绑定,排除旧的slf4j-log4j12:
<dependency> <groupId>[冲突依赖的groupId]</groupId> <artifactId>[冲突依赖的artifactId]</artifactId> <version>[依赖版本]</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency>
- 强制更新依赖:执行
mvn clean install -U命令,强制Maven拉取最新依赖并清理本地缓存,也可手动删除本地仓库中冲突的jar包目录。 - 检查测试插件配置:如果冲突在测试阶段触发,确认surefire插件是否额外引入了冲突依赖,可在插件配置中添加对应排除规则。
内容的提问来源于stack exchange,提问作者RodrigoCm
相关产品推荐
相关产品推荐

