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

Gradle项目中Lombok无法生成Getter和Setter的问题排查

Spring Boot + Gradle + Lombok 无法生成Getter/Setter问题排查

问题描述

我在Spring Boot应用中使用Lombok与Gradle,已安装市场中的Lombok插件,且build.gradle中指定了对应版本,但模型类仍提示需生成Getter和Setter,其他类也无法访问这些方法。我已在根目录添加lombok.config并设置lombok.addLombokGeneratedAnnotation = true,不清楚遗漏了哪些配置?

提供的配置代码

build.gradle

plugins {
id 'org.springframework.boot' version '2.5.0'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}


version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.projectlombok:lombok:1.18.30'
runtimeOnly 'com.h2database:h2'
// annotation processors
annotationProcessor 'org.projectlombok:lombok'
}

Product实体类

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import lombok.Data;

@Entity
@Data
public class Product {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
}

排查与解决步骤

  • 检查IDE注解处理器开关
    以IntelliJ IDEA为例,打开File > Settings > Build, Execution, Deployment > Compiler > Annotation Processors,确保Enable annotation processing选项已勾选。之后执行File > Invalidate Caches...,选择「Invalidate and Restart」清理缓存重启IDE——很多时候IDE缓存会导致Lombok注解不被识别。

  • 调整Gradle依赖配置
    把当前的Lombok依赖从implementation改为compileOnly(Lombok仅编译期需要,无需打包到运行时),同时补充测试环境的注解处理器配置,修改后的依赖块如下:

    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-web'
        testImplementation 'org.springframework.boot:spring-boot-starter-test'
        implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
        runtimeOnly 'com.h2database:h2'
        // Lombok相关配置
        compileOnly 'org.projectlombok:lombok:1.18.30'
        annotationProcessor 'org.projectlombok:lombok:1.18.30'
        testCompileOnly 'org.projectlombok:lombok:1.18.30'
        testAnnotationProcessor 'org.projectlombok:lombok:1.18.30'
    }
    
  • 优化lombok.config配置
    确保文件放在项目根目录(和build.gradle同级),并添加以下配置提升优先级:

    lombok.config.stopBubbling = true
    lombok.addLombokGeneratedAnnotation = true
    

    stopBubbling会让当前目录的配置优先于父目录,避免外部配置干扰。

  • 验证JDK版本一致性
    确认项目配置的JDK(sourceCompatibility = '11')和IDE使用的Project SDK一致,可在File > Project Structure > Project中检查Project SDK是否为JDK11。

  • 手动编译验证问题根源
    执行Gradle编译命令:

    • Linux/Mac: ./gradlew build
    • Windows: gradlew.bat build
      如果编译成功,说明是IDE配置问题,重点排查IDE的注解处理器和缓存;如果编译失败,根据报错信息定位依赖冲突或配置错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 11:36:12