我有一个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
但是,我仍然可以看到依赖关系仍然存在。
文件 > 使缓存无效 我应用了可选设置:
我仍然可以在我的项目窗口中看到外部库部分中列出的依赖项。
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'.
➜ rm -rf ~/.gradle/caches
➜ ./gradlew clean build --refresh-dependencies
我认为重构我的
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'
...
}