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

Spring Boot项目中Lombok无法生成Getter/Setter等方法的问题求助

问题:Lombok注解在Spring Boot项目中不生效(Eclipse环境)

环境信息

  • IDE:Eclipse
  • Spring Boot版本:3.2.0-SNAPSHOT
  • Java版本:17
  • 已通过Maven引入Lombok依赖,且安装了Lombok插件

项目POM配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    <modelVersion>4.0.0</modelVersion>
    
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.0-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    
    <groupId>com.springbootExample</groupId>
    <artifactId>SpringBoot_Example</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>SpringBoot_Example</name>
    <description>Demo project for Spring Boot</description>
    
    <properties>
        <java.version>17</java.version>
    </properties>
    
    <dependencies>
        
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
        
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-devtools</artifactId>
          <scope>runtime</scope>
          <optional>true</optional>
        </dependency>
        
        <dependency>
          <groupId>com.h2database</groupId>
          <artifactId>h2</artifactId>
          <scope>runtime</scope>
        </dependency>
        
        <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>12.4.2.jre11</version>
        </dependency>
        
        <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <optional>true</optional>
        </dependency>

        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
        </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>
              <groupId>org.projectlombok</groupId>
              <artifactId>lombok</artifactId>
            </exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
  
  <repositories>
      
    <repository>
      <id>spring-milestones</id>
      <name>Spring Milestones</name>
      <url>https://repo.spring.io/milestone</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    
    <repository>
      <id>spring-snapshots</id>
      <name>Spring Snapshots</name>
      <url>https://repo.spring.io/snapshot</url>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>
    
  </repositories>
  
  <pluginRepositories>
      
    <pluginRepository>
      <id>spring-milestones</id>
      <name>Spring Milestones</name>
      <url>https://repo.spring.io/milestone</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </pluginRepository>
    
    <pluginRepository>
      <id>spring-snapshots</id>
      <name>Spring Snapshots</name>
      <url>https://repo.spring.io/snapshot</url>
      <releases>
        <enabled>false</enabled>
      </releases>
    </pluginRepository>
    
  </pluginRepositories>

</project>

实体类代码(department.java)

package com.springbootExample.SpringBoot_Example.entity;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class department {
    
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long departmentID;
    
    @NotBlank(message = "Please add department name")
//  @Length(max = 20, min = 10)
//  @Size
//  @Email
//  @Positive
//  @Negative
//  @PositiveOrZero
//  @Future
//  @Past
//  @FutureOrPresent
    private String departmentName;
    private String departmentAdress;
    private String departmentCode;
}

错误现象

在Service实现类中调用实体类的getter方法时,IDE提示以下错误:

The method getDepartmentName() is undefined for the type department
The method getDepartmentCode() is undefined for the type department
The method getDepartmentAdress() is undefined for the type department

已尝试的方案

  • 更新Eclipse IDE
  • 更换Lombok插件版本
  • 重新安装Lombok

解决思路

  • 检查Eclipse注解处理器配置:
    打开Eclipse偏好设置(Window > Preferences),依次进入Java > Compiler > Annotation Processing,确保Enable annotation processing和Enable processing in editor均已勾选;再进入Java > Compiler > Annotation Processing > Factory Path,点击Add External JARs,找到本地Maven仓库中Lombok的jar包(路径示例:~/.m2/repository/org/projectlombok/lombok/[对应版本]/lombok.jar),添加完成后重启Eclipse。

  • 验证Lombok插件状态:
    打开Help > About Eclipse IDE,点击Installation Details,在已安装软件列表中搜索Lombok,确认插件已正常安装;若未找到,重新下载对应Eclipse版本的Lombok插件安装包,安装后重启IDE。

  • 清理并重构项目:
    执行Maven命令 mvn clean install 清理项目,之后在Eclipse中右键项目选择Maven > Update Project,勾选Force Update of Snapshots/Releases,更新完成后重新编译项目。

  • 修正类名命名规范:
    实体类名department不符合Java大驼峰命名规范,改为Department后,Lombok生成的getter方法会自动匹配为getDepartmentName(),避免因命名问题导致的识别异常(虽然Lombok支持小写类名,但规范命名能减少潜在问题)。

  • 确认Lombok依赖完整性:
    检查本地Maven仓库中是否存在对应版本的Lombok jar包,若缺失则执行mvn dependency:resolve命令拉取依赖;POM中Lombok的<optional>true</optional>配置是合理的,无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 21:45:03