我遇到编译错误。我不确定哪个依赖项会导致此错误。 我正在使用@ 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-log4j12-1.7.25中找到绑定。 jar!/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')
}
}
答案 0 :(得分:0)
有几件事要检查:
我发现gradle可能会粘滞其缓存,因此当遇到类似此类的持续问题时,我喜欢rm -rf ~/.gradle/caches
-显然要小心,不要浪费过多的时间。>
运行gradle dependencies
来查找您的日志记录实现的来源。通常,您会发现在某个地方有一个库正在引入slf4j-log4j12
,而另一个库中正在引入logback-classic
。您似乎已经排除了ch.qos.logback
从其插入的spring-boot-starter
组,因此我猜测您希望排除该实现。因此,您想找出将ch.qos.logback
插入的其他位置,并将其也排除在其中。
这是一个费力的过程,我觉得选择Logback-Classic对Spring有点过分自以为是,但这就是目前的样子。
不是一个很好的答案,但我希望这会有所帮助。