log4j-slf4j-impl 不能与 log4j-to-slf4j 一起出现

问题描述 投票:0回答:1

我有一个POC springboot定时任务程序。当我尝试运行我的

producer
方法之一时,出现错误:

Caused by: org.apache.logging.log4j.LoggingException: log4j-slf4j-impl cannot be present with log4j-to-slf4j

我知道调度程序需要

log4j-to-slf4j
才能为
spring-bott-starter-web
依赖项工作所以我将我的
build.gradle
更新为:

dependencies {
    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.6.6'
    testImplementation 'org.awaitility:awaitility:4.2.0'
    testImplementation('org.springframework.boot:spring-boot-starter-test')

    implementation group: 'org.apache.pulsar', name: 'pulsar-client', version: '2.9.2'
    implementation group: 'org.apache.avro', name: 'avro', version: '1.10.2'
   //implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.17.1'

    implementation group: 'com.climate', name: 'event-platform-java-client', version: '0.0.41'
    implementation group: 'com.climate', name: 'event-platform-java-admin-client', version: '0.0.1'
    compileOnly 'org.projectlombok:lombok:1.18.20'
    annotationProcessor 'org.projectlombok:lombok:1.18.20'
}

但是,错误仍然存在。

我尝试过的事情

炸毁我的缓存

rm -rf ~/.m2/repository 

但是,我仍然可以看到依赖关系仍然存在。

在 Intellij 中使缓存无效

文件 > 使缓存无效 我应用了可选设置:

  • 清除文件系统缓存和本地历史
  • 清除下载的共享索引

我仍然可以在我的项目窗口中看到外部库部分中列出的依赖项。

跑步
dependencyInsight
➜ ./gradlew dependencyInsight --dependency log4j-slf4j-impl

> Task :dependencyInsight
No dependencies matching given input were found in configuration ':compileClasspath'

BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed

似乎从来没有想过依赖项被列出,但我仍然收到错误,我可以在外部库中看到它

./gradlew cleanBuildCache
➜ ./gradlew cleanBuildCache

FAILURE: Build failed with an exception.

* What went wrong:
Task 'cleanBuildCache' not found in root project 'event-platform-canary-tests'.

清除.gradle/缓存

➜ rm -rf ~/.gradle/caches 
➜ ./gradlew clean build --refresh-dependencies
java spring-boot gradle log4j
1个回答
-1
投票

我认为重构我的

build.gradle
效果更好:

dependencies {
    implementation (group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.6.6') {
        exclude group: "org.springframework.boot", module: "spring-boot-starter-logging"
    }
    testImplementation 'org.awaitility:awaitility:4.2.0'
    testImplementation('org.springframework.boot:spring-boot-starter-test')
    ...
    //implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.17.1'
    ...
}
© www.soinside.com 2019 - 2024. All rights reserved.