Я работаю над проектом SpringBoot - Kotlin - Gradle и, похоже, столкнулся с конфликтами регистраторов. Я использую библиотеку, которая включает в себя slf4j - и поэтому при запуске мне дается чудесное сообщение:
Caused by: 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:/Users/USERNAME/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-log4j12/1.7.25/110cefe2df103412849d72ef7a67e4e91e4266b4/slf4j-log4j12-1.7.25.jar). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml: org.slf4j.impl.Log4jLoggerFactory
Добавление этих строк в мой файл build.gradle позволяет мне запускать:
configurations {
providedRuntime
compile.exclude(group: 'ch.qos.logback')
}
Однако мое приложение теперь запускается с Кот вместо Причал.
Мой блок зависимостей:
dependencies {
compile('org.springframework.boot:spring-boot-starter')
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile("org.jetbrains.kotlin:kotlin-reflect")
compile 'org.springframework.boot:spring-boot-starter-web'
runtime('org.springframework.boot:spring-boot-devtools')
testCompile('org.springframework.boot:spring-boot-starter-test')
//SpringFox
compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.8.0'
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.8.0'
compile group: 'io.springfox', name: 'springfox-spring-web', version: '2.8.0'
// SDDF
compile "org.mitre.sddf:sddf:15.3.2"
}
Есть ли простой способ решить эту проблему и по-прежнему использовать Причал?
Могу я что-нибудь вставить в свой applicaiton.yml или applictaion.properties?




Что ж, похоже, мне удалось разобраться в своей проблеме (читая журналы немного внимательнее)
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/Users/jstein/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-log4j12/1.7.25/110cefe2df103412849d72ef7a67e4e91e4266b4/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/jstein/.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]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Я добавил это в свой build.gradle
configurations.all {
exclude group: 'org.slf4j', module: 'slf4j-log4j12'
}
Я предлагаю вам сделать
gradle xxx:dependencies, гдеxxx- это путь к проекту (при условии многопроектной сборки). См. перечисление зависимостей сборки