Bif*_*ffy 14 java dependencies slf4j maven
我的依赖树和多个SLF4J绑定有问题.到目前为止我发现的是,通常这只会引起警告但在我的情况下它似乎阻止我的程序运行:这些是我得到的例外:
SLF4J:类路径包含多个SLF4J绑定.SLF4J:在[jar:file:/ C:/Users/FischerNi/.m2/repository/org/slf4j/slf4j-jdk14/1.5.3/slf4j-jdk14-1.5.3.jar!/ org/slf4j /中找到绑定impl/StaticLoggerBinder.class] SLF4J:在[jar:file:/ C:/Users/FischerNi/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar中找到绑定!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J:有关说明,请参见http://www.slf4j.org/codes.html#multiple_bindings.SLF4J:slf4j-api 1.6.x(或更高版本)与此绑定不兼容.SLF4J:您的绑定是1.5.5或更早版本.SLF4J:将绑定升级到1.6.x版.或者2.0.x线程"main"中的异常java.lang.NoSuchMethodError:org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder;
这是我的依赖项的相关部分:net.lightbody.bmp browsermob-proxy 2.0-beta-8
<!-- LOGGING DEPENDENCIES - LOG4J -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何解决这个问题吗?
Ank*_*hag 27
有几种解决方案:
小智 10
Fateh 的回答是正确的,我不得不花一些时间来弄清楚如何使用它,这就是为什么我要添加一个完整的解决方案:
跑 mvn dependency:tree
找出哪个库正在使用 slf4j:
[INFO] +- net.lightbody.bmp:browsermob-proxy:jar:2.0-beta-8:compile
[INFO] | +- org.slf4j:slf4j-jdk14:jar:1.7.25:compile
Run Code Online (Sandbox Code Playgroud)像这样从 maven 中排除它:
<dependency>
<groupId>net.lightbody.bmp</groupId>
<artifactId>browsermob-proxy</artifactId>
<version>2.0.0</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)如果您的项目依赖于其他项目,而另一个项目也使用 slf4j 以及不同版本,请尝试使用excusion
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
Run Code Online (Sandbox Code Playgroud)