试图解决臭名昭著的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]
Run Code Online (Sandbox Code Playgroud)
这是我的项目中唯一的SLF4J依赖项:
dependencies {
compile group: 'org.slf4j', name: 'slf4j-nop', version: '1.7.+'
...
}
Run Code Online (Sandbox Code Playgroud)
另外,如果有帮助,我在运行单元测试时也会遇到问题。
更新:找出了一种依赖关系是使用org.apache.logging,而org.apache.logging则使用了SLF4J。如果我排除了apache logger的组,则整个程序将失败,因为该依赖项会引发ClassNotFoundException。那么现在怎么办?
通过上面的评论能够解决。找到具有SLF4J的依赖关系后,我根据@badjir提到的内容添加了排除项。这解决了当前的主要问题,尽管LOG4J出现了另一个问题,如果继续进行下去,我将提出另一个问题。依赖项之一的示例:
compile (group: 'com.sparkjava', name: 'spark-core', version: '2.5.4') {
exclude group: 'org.slf4j'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1864 次 |
| 最近记录: |