首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SLF4J:使用Gradle插件进行多SLF4J绑定

SLF4J:使用Gradle插件进行多SLF4J绑定
EN

Stack Overflow用户
提问于 2018-08-02 10:46:14
回答 1查看 1.7K关注 0票数 8

我知道这是SLF4J的一个常见问题:类路径包含多个SLF4J绑定。

代码语言:javascript
复制
SLF4J: Found binding in [jar:file:/C:/Users/<name>/.gradle/caches/4.9/generated-gradle-jars/gradle-api-4.9.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/<name>/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j-impl/2.2/afd596adf5086b4f4746254b25a3a4b513f1d6e4/log4j-slf4j-impl-2.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]

当我运行gradle构建并应用了gradle-plugin插件时,我得到了这个错误。

代码语言:javascript
复制
import org.gradle.api.*
class CommonTestPlugin implements Plugin<Project> {

在gradle中

代码语言:javascript
复制
apply plugin: 'java-gradle-plugin'  

我使用这个插件,这样我就可以添加代码来创建一个插件。

上面的错误似乎表明gradle-api是令人不快的依赖项,但是当我使用dependencyInsight --dependency gradle-api启动依赖项洞察任务时

它返回:

代码语言:javascript
复制
No dependencies matching given input were found in configuration ':compileClasspath'

我的问题是:如何确定如何定义/排除插件正在使用的依赖项?我正在使用下面这样的东西,我只是想不出如何将其应用于plugin-api

代码语言:javascript
复制
compile (group: 'com.aestasit.infrastructure.sshoogr', name: 'sshoogr', version: '0.9.26'){
    // exclude this to stop warnings about multiple SLF4J bindings.
    exclude group: 'ch.qos.logback', module: 'logback-classic'
}
EN

回答 1

Stack Overflow用户

发布于 2019-11-14 19:43:19

我遇到了同样的问题。到目前为止,我发现的解决办法是从正在构建的目标JAR中残酷地排除:

代码语言:javascript
复制
bootJar{
  exclude('gradle-api-*.jar', 'groovy-*.jar')
}

我使用的是Spring启动插件。bootJar扩展了jar任务。

然而,问题仍然存在:一个插件的所有用户都必须做这种排除骗局才能让它工作吗?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51644795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档