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

IntelliJ IDEA+Maven环境下Lombok annotationProcessorPath依赖异常,调试时无法识别Getter方法的求助

IntelliJ IDEA+Maven环境下Lombok annotationProcessorPath依赖异常,调试时无法识别Getter方法的求助

我在项目的pom.xml中已经添加了Lombok的依赖以及对应的Maven插件配置,具体内容如下:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <annotationProcessorPaths>
                <path>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                </path>
            </annotationProcessorPaths>
        </configuration>
    </plugin>
    <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>

按道理说,用@Setter、@Getter生成的getter/setter方法在编译时是能正常工作的,但我在调试的时候却遇到了找不到方法的错误:

D:\employee_management\src\main\java\com\asheef\employee_management\service\EmployeeServiceImpl.java:46:28
java: cannot find symbol
symbol:   method getFirstName()
location: variable employeeDto of type com.asheef.employee_management.dto.EmployeeDto

这是我的EmployeeDto类代码:

package com.asheef.employee_management.dto;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.Date;

@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class EmployeeDto {

    private String id;

    private String firstName;

    private String lastName;

    private String email;

    private String phoneNumber;

    private Date dateOfBirth;

    private String gender;

    private String addressLine1;

    private String addressLine2;

    private String city;

    private String state;

    private String country;

    private Date createdAt;

    private Date updatedAt;
}

我在服务实现类里是这样调用的:

if (employeeDto.getFirstName() == null || employeeDto.getFirstName().isEmpty()){
    errorResponse = new ErrorStructure(employeeDto.getFirstName(), Constants.NAME_SHOULD_NOT_BE_NULL,Constants.FIRST_NAME);
    errors.add(errorResponse);
} else if (employeeDto.getFirstName().length() < 3 || employeeDto.getFirstName().length() > 50 ) {
    errorResponse = new ErrorStructure(employeeDto.getFirstName(),Constants.NAME_SHOULD_NOT_BE_GREATER_THAN_FIFTY_AND_LESS_THAN_THREE,Constants.FIRST_NAME);
    errors.add(errorResponse);
} else {
    employeeModel.setFirstName(employeeDto.getFirstName());
    mySqlEmployee.setFirstName(employeeDto.getFirstName());
} 

另外说明下我的开发环境:Java 11 + Maven 3.9.9。

有没有大佬能帮忙排查下这个问题呀?


备注:内容来源于stack exchange,提问作者Asheef

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 09:04:31