今天对接了移动短信 sdk,使用他们的 sdk 启动项目报错日志 SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/Users/lf/work/company/code/dbs/src/main/resources/lib/masmgc.sdk.sms-0.0.1-SNAPSHOT.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/lf/javaweb/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.11.2/log4j-slf4j-impl-2.11.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
Exception in thread "main" java.lang.IllegalArgumentException: Cannot instantiate interface org.springframework.boot.SpringApplicationRunListener : org.springframework.boot.context.event.EventPublishingRunListener
<dependency>
<groupId>com.yidong</groupId>
<artifactId>yd-sms-sdk</artifactId>
<version>0.0.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/masmgc.sdk.sms-0.0.1-SNAPSHOT.jar</systemPath>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
springboot 小项目日志使用的 log4j,引入的第三方 jar 无法排除,请教大佬们如何才能解决这个冲突。
1
lyusantu 2020-12-03 17:32:18 +08:00
可以装个 maven 插件,排除一下是否有其他包也包含了第三方日志的其他版本,然后只保留一个就可以
|
2
anansi 2020-12-03 17:33:13 +08:00
这个不是老生常谈吗,通过 maven 的 show dependency,查看是哪些包引入了冲突的模块,然后在那些包 dependency 里一个个<exclusion>那个模块,最后只保留一个。大致就是这么改。
|
3
liamyoung 2020-12-03 17:46:15 +08:00
Idea 安装 maven helper 插件,去除相同的 slf4j 依赖,只保留一个
|
4
1cming 2020-12-03 20:00:58 +08:00
mvn dependency:tree 打印依赖树
查看所有 SLF4J 相关的包 逐一排除 确认是否排除掉可以再次执行 mvn dependency:tree |
5
silentt 2020-12-03 20:16:45 +08:00 via iPhone
移动短信 sdk 啊,我建议你用解压工具打开,直接把里面的 log4j 删了,那一个包里面啥都有,连 spring 都在 jar 里
|
6
EastLord 2020-12-03 20:47:18 +08:00
跟我今天遇到的差不多 也是日志依赖冲突
|
7
EastLord 2020-12-03 20:47:48 +08:00
我是把多余的依赖排除掉就好了
|