У меня проблема с конфликтующими зависимостями в моем проекте. В частности, есть две реализации SLF4J лесозаготовок: SLF4J-простой и Logback-классика, и я получаюИсключение зависимостей в maven
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/Users/apykhtin/.m2/repository/org/slf4j/slf4j-simple/1.7.19/slf4j-simple-1.7.19.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/apykhtin/.m2/repository/ch/qos/logback/logback-classic/1.1.3/logback-classic-1.1.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
Exception in thread "main" java.lang.IllegalStateException: Unable to acquire the logger context
at io.dropwizard.logging.LoggingUtil.getLoggerContext(LoggingUtil.java:46)
во время выполнения.
logback-classic - обязательная зависимость для меня (из-за dropwizard), но slf4j-simple на самом деле не так, и я хотел бы отказаться от него из моего проекта uber. Только это не так просто.
Мой «uber jar» имеет зависимость от «маленькой банки», которая, в свою очередь, имеет зависимость от «slf4j-simple». Положив исключение в П Uber Jar является не помогаешь:
<dependency>
<groupId>com.my.unique.group</groupId>
<artifactId>small-jar</artifactId>
<version>0.1.2-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
Я думаю, потому что малая баночка «затененная». Мой «uber-jar» использует maven-shade-plugin, а «small-jar» - нет. Я также попытался исключить SLF4J простое затенение:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.6</version>
<configuration>
<artifactSet>
<excludes>
<exclude>org.slf4j:slf4j-simple:jar</exclude>
</excludes>
</artifactSet>
...
</plugin>
но без успеха. slf4j-simple все еще включен в мою uber-jar. До сих пор мое развитие было связано с «uber-jar». Возможно внесение изменений в код «маленькой банки», но я бы хотел этого избежать.
Что я делаю неправильно?
Обновление: maven-shade-plugin здесь не является преступником. Я полностью отключил этот плагин и по-прежнему получал точно такую же ошибку. – Alexander
Обновление 2: По-видимому, мои проблемы были вызваны неправильной конфигурацией проекта. После очистки всего (включая репозиторий maven), проверки свежих источников и создания проекта в Eclipse с нуля, все работает должным образом. Спасибо всем. – Alexander