Spring Boot 2.0.5 - Activemq 5.14.0 проблемы с регистратором установки с Gradle

Я получаю следующую ошибку времени выполнения после добавления activemq в свой build.gradle.

compile("org.apache.activemq:activemq-all:5.14.0")

Я пытался исключить модули, но это, похоже, не исключает logback, как я ожидал. Посоветуйте, пожалуйста, что я могу сделать, чтобы исключить повторный вход. Еще одно замечание: это приложение kotlin, однако я не думаю, что это актуально.

compile("org.springframework.boot:spring-boot-starter-web:${springBootVersion}")
{
            exclude module: "spring-boot-starter-logging"
            exclude module: "logback-classic"
}

Вот исключение:

Exception in thread "main" java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.impl.Log4jLoggerFactory loaded from file:/C:/Users/z037640/.gradle/caches/modules-2/files-2.1/org.apache.activemq/activemq-all/5.14.0/858a3bd95d20e7a8949006cdb50a7c362f8825ec/activemq-all-5.14.0.jar). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml Object of class [org.slf4j.impl.Log4jLoggerFactory] must be an instance of class ch.qos.logback.classic.LoggerContext

1 ответ

Решение

Если вы не хотите использовать logback в качестве регистратора, вам просто нужно исключить его из всех конфигураций, как показано ниже:

configurations.all {
    exclude group: "ch.qos.logback"
}

dependencies {
   // ... all your dependencies here.
}

В вашем примере проекта github: вы объявили правила исключения в buildscript блок, который не так. Вам необходимо настроить эти исключения вне этого блока (=> на том же уровне, что и repositories или же dependencies блоки)

Обратите внимание, что основной причиной вашей проблемы с журналированием является то, что оба spring-boot а также active-mq-all зависимости обеспечивают реализацию связывания Slf4j в своих транзитивных зависимостях, поэтому вам нужно либо исключить logback (см. решение выше) или реализация из active-mq (что кажется более сложным: см. /questions/46418570/oshibka-mnozhestvennyih-privyazok-slf4j-s-activemq-all-560jar/46418604#46418604)

Другие вопросы по тегам