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

升级spring-kafka至2.8.0时出现org.slf4j包不存在错误求助

问题排查与解决方案

核心原因

Spring Kafka 2.8.0版本对SLF4J API的依赖范围做了调整——此前2.7.x版本默认将SLF4J API作为编译时传递依赖,而2.8.0可能将其改为runtimeOnly或者不再自动传递。Lombok的@Slf4j注解在编译阶段会生成依赖SLF4J API的代码,因此编译时classpath中必须存在SLF4J API,否则就会抛出package org.slf4j does not exist的错误。

解决方案

  • 显式添加SLF4J API编译依赖
    在build.gradle中直接声明SLF4J API的compileOnly依赖,确保编译阶段能找到该包:

    compileOnly 'org.slf4j:slf4j-api:1.7.36'
    

    注:版本号可根据Spring Kafka 2.8.0的兼容情况调整,也可以使用implementation,但compileOnly更符合依赖原则(仅编译时需要,运行时由日志实现包提供)。

  • 检查依赖传递关系
    执行Gradle命令查看编译类路径的依赖树,确认SLF4J API的状态:

    ./gradlew dependencies --configuration compileClasspath | grep slf4j-api
    

    如果输出中SLF4J API的范围是runtimeOnly或未出现,说明确实需要手动添加编译依赖。

  • 可选:升级Lombok版本
    虽然Lombok 1.18.24支持Java 17,但升级到1.18.30及以上版本可以获得更好的Java 17兼容性,避免潜在的注解处理器问题:

    compileOnly 'org.projectlombok:lombok:1.18.32'
    annotationProcessor 'org.projectlombok:lombok:1.18.32'
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:25:39