问题描述
我知道你们都会说什么,这是一个重复的问题,等等……但事实并非如此.因为我已经完成了 slf4j-test ,但每次运行测试时,我仍然会收到以下错误消息:
I know what you're all gonna say, this is a duplicate question, etc... But it is not. Because I have done the exclusion
configurations suggested in slf4j-test and I still get the error below whenever I run my tests:
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
依赖关系.
The dependency tree tells me that the spring-jpa includes ch.qos.logback:logback-classic
dependency.
% 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
.但是,即使包括以下内容,它似乎也是如此:
I would like to use slf4j-test
during testing. But it seems like even after including the following:
<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文档.
The error persists, seems like the maven-surefire-plugin
classpath exclusion is not having any effect. Again, I have seen slf4j-test documentation.
任何人都可以帮助我调试这个乏味的错误!!!
Anyone can help me debug this tedious error!!!
推荐答案
如果您的pom中不需要 logback-classic
依赖项,则可以将它从spring-boot-starter-data-jpa中排除:
You can exclude logback-classic
dependency if its not required in your pom from spring-boot-starter-data-jpa:
<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,则可以在pom中将其标记为可选:
In case you need logback-classic as well, you can mark it as optional in your pom:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
这篇关于SLF4J:类路径包含多个SLF4J绑定slf4j-test与logback-classic的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!