当前位置:  开发笔记 > 编程语言 > 正文

禁止SLF4J多重绑定摇篮

如何解决《禁止SLF4J多重绑定摇篮》经验,为你挑选了1个好方法。

试图解决臭名昭著的SLF4J多重绑定问题。这里有大约一百万个针对Maven的解决方案,但是没有一个可以翻译成Gradle(显然不是Gradle专家)。我已经尝试了一些解决方案,configurations但是都没有正常工作。这是我遇到的错误(正如我提到的,我试图抑制警告)

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in     [jar:file:~/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-nop/1.7.22/3a4392836f875995446373b008e39cdb9a532fbe/slf4j-nop-1.7.22.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:~/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j-impl/2.7/382b070836b8940a02d28c936974db95e9bfc3a4/log4j-slf4j-impl-2.7.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 [org.slf4j.helpers.NOPLoggerFactory]

这是我的项目中唯一的SLF4J依赖项:

dependencies {
    compile group: 'org.slf4j', name: 'slf4j-nop', version: '1.7.+'
    ...
}

另外,如果有帮助,我在运行单元测试时也会遇到问题。

更新:找出了一种依赖关系是使用org.apache.logging,而org.apache.logging则使用了SLF4J。如果我排除了apache logger的组,则整个程序将失败,因为该依赖项会引发ClassNotFoundException。那么现在怎么办?



1> MarkII..:

通过上面的评论能够解决。找到具有SLF4J的依赖关系后,我根据@badjir提到的内容添加了排除项。这解决了当前的主要问题,尽管LOG4J出现了另一个问题,如果继续进行下去,我将提出另一个问题。依赖项之一的示例:

compile (group: 'com.sparkjava', name: 'spark-core', version: '2.5.4') {
    exclude group: 'org.slf4j'
}

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有