You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot定时任务报错:log4j-slf4j-impl与log4j-to-slf4j冲突

解决SpringBoot定时任务POC中log4j-slf4j-impl与log4j-to-slf4j冲突问题

问题描述

运行SpringBoot定时任务POC的producer方法时触发以下错误:

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

已知spring-boot-starter-web依赖需要log4j-to-slf4j,已手动注释build.gradle中的log4j-slf4j-impl依赖,但错误仍未解决。

已尝试操作

  • 删除~/.m2/repository缓存,依赖仍显示
  • 在IntelliJ中执行Invalidate Caches(清除文件系统缓存、本地历史及共享索引),外部库仍存在该依赖
  • 执行./gradlew dependencyInsight --dependency log4j-slf4j-impl未找到匹配依赖,但仍报错且能看到依赖
  • 执行./gradlew cleanBuildCache提示任务不存在
  • 删除~/.gradle/caches并执行./gradlew clean build --refresh-dependencies,问题未解决

可行排查&解决步骤

  1. 强制排除隐式传递依赖
    即使dependencyInsight未查到,可能是第三方依赖间接引入了log4j-slf4j-impl,在build.gradle的核心依赖块中强制排除:

    implementation('org.springframework.boot:spring-boot-starter-web') {
        exclude group: 'org.apache.logging.log4j', module: 'log4j-slf4j-impl'
    }
    // 其他可能引入该依赖的模块,同样添加排除规则
    
  2. 检查本地Jar包
    确认项目的lib目录(若存在)中是否有手动添加的log4j-slf4j-impl.jar,如有直接删除。

  3. 通过IntelliJ依赖视图定位来源
    打开IntelliJ的Project Structure -> Libraries,找到log4j-slf4j-impl后右键选择Show in Project View,查看它的引入路径,针对性排除。

  4. 排查Gradle脚本的隐藏配置
    检查build.gradle中allprojects、subprojects块,或自定义依赖配置、插件是否自动引入了该依赖。

  5. 生成完整依赖报告定位
    生成全量依赖报告并搜索log4j-slf4j-impl的踪迹:

    ./gradlew dependencies > dependencies.txt
    

    打开dependencies.txt全局搜索关键词,找到具体引入路径。

内容的提问来源于stack exchange,提问作者Hofbr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:25:09