多个 SLF4J 绑定会导致错误?

新手上路,请多包涵

我的依赖树和多个 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 版。或线程“主”java.lang.NoSuchMethodError 中的 2.0.x 异常: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>

有人可以告诉我如何解决这个问题吗?

原文由 Biffy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 703
2 个回答

有几个解决方案:

  • 如果您的类路径上有几个不同版本的 slf4j jar,请确保 只包含一个 slf4j jar (可能具有更高版本)。
  • 有时可能无法排除多个 slf4j jar,因为它们可能被其他 jar 在内部使用,这些 jar 在您的类路径上。这些依赖的 jar 可能引用不同版本的 slf4j jar,这会导致您的应用程序失败。在这种情况下, 请确保在使用 SLF4J jars 的其他 jar 之前添加了具有更高版本 SLF4j 的 jar 。这将确保您的 java 程序将选择最新版本的 SLF4J,这显然是向后兼容的。

原文由 Ankur Shanbhag 发布,翻译遵循 CC BY-SA 3.0 许可协议

Fateh 的回答是正确的我不得不花一些时间来弄清楚如何使用它,这就是为什么我要添加一个完整的解决方案:

  1. 运行 mvn dependency:tree

  2. 找出哪个库正在使用 slf4j:

    [INFO] +- net.lightbody.bmp:browsermob-proxy:jar:2.0-beta-8:compile
   [INFO] |  +- org.slf4j:slf4j-jdk14:jar:1.7.25:compile

  1. 像这样从 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>

原文由 Hans Pour 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题