Путь к классу содержит несколько привязок SLF4J

#java #maven #apache-storm #slf4j

#java #maven #apache-storm #slf4j

Вопрос:

Я пытался отладить свой проект, но получил это

 SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/storm/lib/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/user/.m2/repository/ch/qos/logback/logback-classic/1.0.13/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]
  

что мне делать?

у меня нет никакой зависимости для SLF4J в POM только это

 <dependency>
        <groupId>org.apache.storm</groupId>
        <artifactId>storm-core</artifactId>
        <version>0.9.6</version>
        <scope>provided</scope>
</dependency>
  

я пытался использовать решения, которые я нашел в похожих сообщениях, но не решил это! Нравится

 <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>log4j-over-slf4j</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
            <exclusion>
                <groupId>logback-classic</groupId>
                <artifactId>ch.qos.logback</artifactId>
            </exclusion>
        </exclusions>
  

Я попытался заменить provided на compile , но тоже не решил.

Я получил это с помощью mvn dependency:tree

  org.slf4j:log4j-over-slf4j:jar:1.6.6:provided 
 org.slf4j:slf4j-api:jar:1.7.5:compile
  

Комментарии:

1. Хорошо, но к какой зависимости вы добавили исключения? Я бы начал с запуска a mvn dependency:tree , чтобы узнать, подключается ли slf4j к другим имеющимся у вас зависимостям.

2. Здесь <groupId>org.apache.storm</groupId> <artifactId>storm-core</artifactId> <версия> 0.9.6</version> <область> при условии </scope> я отредактировал сообщение, используя mvn dependency:tree

3. @user1 Если вы решили это, было бы ТАК любезно предоставить решение!

4. я уже это сделал!! я принял ответ, который написал иссам

Ответ №1:

У вас есть 2 источника зависимостей для storm, один из / usr/local/storm/lib/ directory, а второй из maven, которые вызывают множественную привязку для sl4j.
Попробуйте использовать только один источник зависимостей.

Комментарии:

1. в моем случае это был каталог smcf.ear в C:Program Файлы, но похожая концепция

Ответ №2:

Следуя строке принятого ответа, я нашел способ попытаться использовать только один источник зависимостей, чтобы снова клонировать / создать проект, над которым я работал. В моем случае это был уже запущенный проект, и, вероятно, из-за низкой скорости соединения у меня возникло несколько проблем с повторным импортом всех проектов Maven. Итак, я немного перепутал настройки проекта, пытаясь получить доступ ко всем зависимостям propper.

Это вызвало некоторые неожиданные изменения в моем проекте pom.xml файл, который привел к ошибке. Итак, повторное клонирование проекта в новую папку и повторный импорт maven с некоторой приличной скоростью Интернета просто отлично сработали для меня. Надеюсь быть полезным. С уважением