Путь Gradle Class содержит несколько привязок SLF4J - PullRequest
1 голос
/ 11 марта 2019

Я получаю ошибку компиляции. Я не уверен, какая зависимость обеспечивает эту ошибку. Я использую аннотацию @ slf4j lombok для ведения журналов в моих классах.

SLF4J: путь к классу содержит несколько привязок SLF4J. SLF4J: Обнаружена привязка в [jar: file: /home/andrius/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-log4j12/1.7.25/110cefe2df103412849d72ef7a67e4e91e4266b4/slf4j.7.25j. баночка! /org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Обнаружена привязка в [jar: file: /home/andrius/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.3/7c4f3c474fb2c041d8028740440937705ebb473a/logback-classic-1.2. 3.jar! /org/slf4j/impl/StaticLoggerBinder.class]

Я не совсем уверен, какой модуль и что я должен исключить, чтобы избежать этого.

Моя настройка зависимостей Gradle ниже.

dependencies {
implementation('org.springframework.boot:spring-boot-starter') {
    exclude group: 'ch.qos.logback'
}
compileOnly('org.projectlombok:lombok:1.18.2')
testCompileOnly('org.projectlombok:lombok:1.18.2')
annotationProcessor('org.projectlombok:lombok:1.18.2')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('net.sf.dozer:dozer:5.4.0')
compile('org.springframework.boot:spring-boot-starter-logging')
compile('io.springfox:springfox-swagger2:2.9.2')
compile('io.springfox:springfox-swagger-ui:2.9.2')
testImplementation('org.springframework.boot:spring-boot-starter-test') {
    exclude(module: 'spring-boot-starter-logging')
 }
}

1 Ответ

0 голосов
/ 16 мая 2019

Есть несколько вещей, которые нужно проверить:

Я обнаружил, что gradle может зависнуть от своего кеша, поэтому, когда у меня возникают постоянные проблемы, подобные этой, мне нравится rm -rf ~/.gradle/caches - очевидно, будьте осторожны и не уничтожайте больше, чем вы собираетесь.

Запустите gradle dependencies, чтобы выяснить, откуда берутся ваши реализации журналирования. Как правило, вы обнаружите, что где-то будет библиотека, которая загружает slf4j-log4j12, а другая - logback-classic. Похоже, вы исключили группу ch.qos.logback, из которой ее извлекает spring-boot-starter, поэтому я предполагаю, что вы хотите исключить эту реализацию. Поэтому вы хотите узнать, куда еще втягивается ch.qos.logback, и исключить его там.

Это трудоемкий процесс, и я чувствую, что Spring немного надуман, выбирая logback-classic, но на данный момент так оно и есть.

Не совсем ответ, но я надеюсь, что это поможет.

...