无法删除slf4j依赖项

时间:2017-07-07 07:40:39

标签: java eclipse maven slf4j

我对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版本?

1 个答案:

答案 0 :(得分:2)

由于错误堆栈建议检查链接Multiple Binding 另外,检查Dependency Tree以检查哪个外部依赖项试图包含(1.5.5或更早版本)。 基本上,您的排除代码

<exclusions>
   <exclusion>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>               
   </exclusion>
</exclusions>
应该在依赖于早期版本1.5.5的依赖项中插入