2017-07-07 4 views
0

J'ai un problème avec les dépendances de slf4j.Impossible de supprimer les dépendances slf4j

Sur pom.xml, je déclare ceci:

 <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> 

Mais je rencontre ce message d'erreur:

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. 

Sur ces directorties et sur les dépendances de Maven j'ai 1.5 versions, mais Je ne les ai pas sur le fichier POM.xml (comme vous pouvez le voir), donc je ne sais pas comment les supprimer. Si je supprime les répertoires, cela fonctionne mais l'esquisse suivante le projet télécharge à nouveau les versions 1.5. Comment puis-je supprimer ces fichues versions 1.5?

+0

Avez-vous essayé de nettoyer votre build avant d'exécuter et de nettoyer votre cache de référentiel? – Nico

Répondre

2

Comme le suggère la pile d'erreurs, vérifiez le lien Multiple Binding.
De même, vérifiez Dependency Tree pour vérifier quelle dépendance externe tente d'inclure (version 1.5.5 ou antérieure). Fondamentalement, votre code d'exclusion

<exclusions> 
    <exclusion> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId>    
    </exclusion> 
</exclusions> 

doit être inséré dans cette dépendance qui dépend d'une version antérieure 1.5.5.