首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SLF4J:类路径包含多个SLF4J绑定slf4j-test vs logback-classic

SLF4J:类路径包含多个SLF4J绑定slf4j-test vs logback-classic
EN

Stack Overflow用户
提问于 2018-07-04 13:19:02
回答 1查看 1.3K关注 0票数 7

我知道你们想说什么,这是一个重复的问题,等等。但事实并非如此。因为我已经完成了slf4j-test中建议的exclusion配置,但每次运行测试时都会收到以下错误:

代码语言:javascript
复制
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in 
[jar:file:/C:/Users/admin/.m2/repository/ch/qos/logback/logback-classic/1.1.11/logback-classic-1.1.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in 
[jar:file:/C:/Users/admin/.m2/repository/uk/org/lidalia/slf4j-test/1.2.0/slf4j-test-1.2.0.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 [ch.qos.logback.classic.util.ContextSelectorStaticBinder]

依赖关系树告诉我spring-jpa包含ch.qos.logback:logback-classic依赖关系。

代码语言:javascript
复制
% mvn dependency:tree
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building weblio-help 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.10:tree (default-cli) @ weblio-help ---
[INFO] jp.weblio.help:weblio-help:jar:1.0.0
[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.5.4.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:1.5.4.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.4.RELEASE:compile
[INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.1.11:compile
[INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.1.11:compile
[INFO] |  |  |  +- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
[INFO] |  |  |  \- org.slf4j:log4j-over-slf4j:jar:1.7.25:compile
[INFO] |  |  \- org.yaml:snakeyaml:jar:1.17:runtime
[INFO] \- uk.org.lidalia:slf4j-test:jar:1.2.0:test
[INFO]    +- uk.org.lidalia:lidalia-lang:jar:1.0.0:test
[INFO]    |  \- org.apache.commons:commons-lang3:jar:3.1:test
[INFO]    +- com.google.guava:guava:jar:14.0.1:test
[INFO]    +- uk.org.lidalia:lidalia-slf4j-ext:jar:1.0.0:test
[INFO]    \- joda-time:joda-time:jar:2.9.9:test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.845 s
[INFO] Finished at: 2018-07-04T14:07:54+09:00
[INFO] Final Memory: 21M/125M
[INFO] ------------------------------------------------------------------------

我想在测试期间使用slf4j-test。但即使在包含以下内容之后,它似乎也是如此:

代码语言:javascript
复制
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <classpathDependencyExcludes>
            <classpathDependencyExcludes>ch.qos.logback:logback-classic</classpathDependencyExcludes>
        </classpathDependencyExcludes>
    </configuration>
</plugin>

错误仍然存在,似乎maven-surefire-plugin类路径排除没有任何影响。再说一次,我见过slf4j-test documentation

任何人都可以帮我调试这个繁琐的错误!

EN

回答 1

Stack Overflow用户

发布于 2018-07-04 13:45:16

如果您的pom中不需要spring- logback-classic -starter-data-jpa,您可以排除数据依赖:

代码语言:javascript
复制
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
        <exclusions>
             <exclusion>
                  <groupId>ch.qos.logback</groupId>
                  <artifactId>logback-classic</artifactId>
              </exclusion>
         </exclusions>
</dependency>

编辑:

如果你也需要logback-classic,你可以在你的pom中将其标记为可选:

代码语言:javascript
复制
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <scope>runtime</scope>
    <optional>true</optional>
</dependency>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51166228

复制
相关文章

相似问题

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