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
相关产品推荐
相关产品推荐

