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

Gradle4.7+配置annotationProcessor后Lombok编译报错求助

解决Gradle 4.7中Lombok配置后测试类@Slf4j编译错误的问题

嗨,我来帮你搞定这个问题!你遇到的编译错误,核心原因是Lombok的配置需要同时保留compileOnly/testCompileOnly和annotationProcessor/testAnnotationProcessor,两者缺一不可,下面给你详细拆解和解决方案:

问题根源

你之前把原有的compileOnly和testCompileOnly替换成annotationProcessor配置,但忽略了一个关键点:

  • compileOnly/testCompileOnly的作用是让编译器和IDE能找到Lombok的注解类(比如@Slf4j),相当于提供注解的"定义";
  • annotationProcessor/testAnnotationProcessor的作用是告诉Gradle在编译阶段运行Lombok的注解处理器,生成对应的代码(比如自动创建log变量)。

如果只保留annotationProcessor,编译时会找不到@Slf4j这个注解的类定义,自然就会报"找不到符号"的错误。

正确的Lombok配置

在你的Gradle 4.7项目中,需要同时配置这两类依赖,主代码和测试代码要分开配置:

dependencies {
    // 主代码的Lombok配置
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'

    // 测试代码的Lombok配置
    testCompileOnly 'org.projectlombok:lombok'
    testAnnotationProcessor 'org.projectlombok:lombok'

    // 额外提醒:如果测试类用@Slf4j,还要确保测试环境有Slf4j的实现(比如logback)
    testImplementation 'ch.qos.logback:logback-classic:1.2.11'
    // 其他测试依赖,比如JUnit
    testImplementation 'junit:junit:4.13.2'
}

验证步骤

  1. 把上述配置更新到你的build.gradle中;
  2. 执行清理并重新编译:
    gradlew clean build --warning-mode=all
    

这样就能解决编译错误,同时也不会再收到Lombok注解处理器过时的警告啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:16:29