本地调试报错:

 

  1. SLF4J: Class path contains multiple SLF4J bindings.  
  2. SLF4J: Found binding in [jar:file:/E:/repository/org/slf4j/slf4j-nop/1.6.1/slf4j-nop-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]  
  3. SLF4J: Found binding in [jar:file:/E:/repository/org/slf4j/slf4j-log4j12/1.7.12/slf4j-log4j12-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class]  
  4. SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.  
  5. SLF4J: Actual binding is of type [org.slf4j.helpers.NOPLoggerFactory]  

分析过程(先后执行了):

        mvn dependency:list
        mvn dependency:tree -Dverbose -Dincludes=org.slf4j

执行后输出为:

 

  1. [INFO] +- b:c:jar:2.0.0-SNAPSHOT:compile  
  2. [INFO] |  +- org.slf4j:slf4j-api:jar:1.7.12:compile  
  3. [INFO] |  \- com.google.code:fqueue:jar:0.0.2-release:compile  
  4. [INFO] |     +- commons-lang:commons-lang:jar:2.5:compile  
  5. [INFO] |     +- commons-logging:commons-logging:jar:1.1.1:compile  
  6. [INFO] |     +- org.slf4j:slf4j-nop:jar:1.6.1:compile  
  7. [INFO] |     \- org.jboss.netty:netty:jar:3.2.4.Final:compile  

  1. [INFO] +- b:d:jar:2.0.0-SNAPSHOT:compile  
  2. [INFO] |  +- org.slf4j:slf4j-log4j12:jar:1.7.12:runtime  
  3. [INFO] |  +- log4j:log4j:jar:1.2.16:compile  
  4. [INFO] |  \- commons-codec:commons-codec:jar:1.4:compile  


就是因为a包依赖了b.c和b.d,这两者中的slf4j-nop和slf4j-log4j12冲突了。

 

解决办法,通过在dependency中采用exclusions来选择性的排除依赖就ok了

 

  1.               <dependency>  
  2.     <groupId>b</groupId>  
  3.     <artifactId>c</artifactId>  
  4.     <version>2.0.0-SNAPSHOT</version>  
  5.       <exclusions>  
  6.         <exclusion>  <!-- declare the exclusion here -->  
  7.       <groupId>org.slf4j</groupId>  
  8.       <artifactId>slf4j-nop</artifactId>                
  9.         </exclusion>  
  10.       </exclusions>                 
  11. </dependency>