У меня есть проект, который использует 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
, поскольку ее нет в спискезависимости, которые я добавил.
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
в качестве зависимости в моем проекте, но pom для этого фляги не упоминает org.slf4j:slf4j-log4j12
как зависимость.Так что теперь я задаюсь вопросом, почему зависимость maven: дерево показывает slf4j-log4j12
как зависимость времени компиляции?