我对slf4j依赖项有疑问。
在POM.xml上,我声明了这个:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
但我遇到这个错误信息:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in
[jar:file:/C:/Users/r.rossi/.m2/repository/org/slf4j/slf4j-
nop/1.5.3/slf4j-nop-1.5.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/C:/Users/r.rossi/.m2/repository/org/slf4j/slf4j-
jdk14/1.5.6/slf4j-jdk14-
1.5.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/C:/Users/r.rossi/.m2/repository/org/slf4j/slf4j-
log4j12/1.7.12/slf4j-log4j12-
1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
explanation.
SLF4J: slf4j-api 1.6.x (or later) is incompatible with this binding.
SLF4J: Your binding is version 1.5.5 or earlier.
SLF4J: Upgrade your binding to version 1.6.x.
在那些直接和maven依赖项上,我有1.5个版本,但我没有在POM.xml文件中(如你所见),所以我不知道如何删除它们。如果我删除目录,它可以工作,但下一次执行项目再次下载1.5版本。我该如何删除那些该死的1.5版本?
答案 0 :(得分:2)
由于错误堆栈建议检查链接Multiple Binding 另外,检查Dependency Tree以检查哪个外部依赖项试图包含(1.5.5或更早版本)。 基本上,您的排除代码
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
应该在依赖于早期版本1.5.5的依赖项中插入。