Maven编译时Lombok @Data未生成Getter/Setter方法的问题
解决Maven编译时Lombok @Data注解方法找不到的问题
问题分析
出现「找不到符号」错误的核心原因是:Maven命令行编译环节没有触发Lombok的注解处理器,导致@Data注解本该自动生成的getDay()等方法没能被生成。虽然Eclipse插件能识别Lombok注解,但Maven编译需要显式配置才能启用注解处理逻辑。
解决方案
1. 在pom.xml中配置Maven编译插件与Lombok注解处理器
修改pom.xml的<build>节点,添加maven-compiler-plugin并指定Lombok为注解处理器,确保编译时自动生成Lombok方法:
<build> <plugins> <!-- 配置Maven编译插件,启用Lombok注解处理器 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <!-- 与Spring Boot 2.5.2版本兼容 --> <configuration> <source>1.8</source> <target>1.8</target> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> </path> </annotationProcessorPaths> </configuration> </plugin> <!-- 保留原有的Spring Boot Maven插件 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>build-info</goal> </goals> <configuration> <additionalProperties> <encoding.source>${project.build.sourceEncoding}</encoding.source> <encoding.reporting>${project.reporting.outputEncoding}</encoding.reporting> <java.source>${maven.compiler.source}</java.source> <java.target>${maven.compiler.target}</java.target> </additionalProperties> </configuration> </execution> </executions> </plugin> </plugins> </build>
2. 清理并重新编译项目
执行以下命令重新编译:
mvn clean install
备用方案:修复损坏的Lombok依赖
如果配置后仍报错,可能是本地Maven仓库的Lombok包损坏,按以下步骤处理:
- 找到本地Maven仓库的Lombok路径(例如
~/.m2/repository/org/projectlombok/lombok/1.18.30) - 删除该目录
- 再次执行
mvn clean install让Maven重新下载依赖
为什么之前正常现在失败?
之前编译正常是因为Maven缓存了Lombok生成的class文件,执行mvn clean后清除了缓存,而缺少注解处理器配置导致重新编译时无法生成方法。
内容的提问来源于stack exchange,提问作者xcs4me
相关产品推荐
相关产品推荐

