我有一个使用hadoop-mapreduce-client-core
作为依赖项的项目。当我尝试运行我的项目时,出现以下错误
Classpath contains multiple SLF4J bindings
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/server/tomcat-8.0.35/temp/3-ex/WEB-INF/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/server/tomcat-8.0.35/temp/3-ex/WEB-INF/lib/logback-classic-1.1.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
所以我检查了项目中的依赖项,以检查slf4j-log4j12
jar的来源,因为它不在我添加的依赖项列表中。
mvn dependency:tree -Dverbose -Dincludes=org.slf4j:slf4j-log4j12
这给了我以下输出
[INFO] com.me.ex:exprj:jar:1.1.0
[INFO] \- org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.7.1:compile
[INFO] \- org.slf4j:slf4j-log4j12:jar:1.7.10:compile
现在,我在项目中使用hadoop-mapreduce-client-core
作为依赖项,但是此jar的pom并未提及org.slf4j:slf4j-log4j12
作为依赖项。因此,我现在想知道为什么Maven依赖项:tree将slf4j-log4j12
显示为编译时依赖项?