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

Maven项目编译时无法识别Lombok生成的Getter/Setter方法

问题根因

IDE安装的Lombok插件仅覆盖代码编辑阶段的语法解析、提示补全逻辑,不会参与Maven构建流程的实际编译过程。编译期抛出找不到符号的错误,核心原因是Maven构建环节Lombok注解处理器未正常工作,没有为标注@Getter/@Setter的类生成对应的get/set方法,和IDE插件是否正常运行没有直接关联。

常见场景与修复方法
  • maven-compiler-plugin显式指定注解处理器路径时遗漏Lombok
    不少项目会在maven-compiler-plugin配置中通过<annotationProcessorPaths>节点显式声明所有用到的注解处理器来加快编译速度,一旦配置了该节点,Maven就不会自动从项目依赖中扫描加载注解处理器,哪怕Lombok已经以provided scope引入也不会被识别。需要在该节点下补充Lombok的配置:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.11.0</version>
        <configuration>
            <annotationProcessorPaths>
                <!-- 其他已配置的注解处理器,如mapstruct等 -->
                <path>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <version>1.18.30</version>
                </path>
            </annotationProcessorPaths>
        </configuration>
    </plugin>
    
  • 注解处理被全局关闭
    检查当前项目POM、继承的父POM或Maven全局settings配置中,是否存在<maven.compiler.proc>none</maven.compiler.proc>的配置项,该配置会直接禁用编译期所有注解处理器的执行,删除该配置或将值改为full即可恢复正常。
  • Lombok版本与JDK版本不匹配
    当前使用的1.18.24版本Lombok最高仅支持到JDK18,如果项目本地/构建环境用的是JDK19及以上版本(比如JDK21),需要将Lombok升级到对应适配版本,JDK21环境至少需要1.18.30及以上版本的Lombok。
  • 增量编译缓存脏数据
    如果之前构建时出现过Lombok失效的情况,target目录下残留的旧class文件会被增量编译逻辑复用,直接在项目根目录执行mvn clean compile清空所有历史编译产物后重新构建即可。
  • 注解导入错误
    检查ResourceDAO类上的@Getter、@Setter注解是否导入的是lombok包下的对应类,避免误引入其他第三方依赖中同名的无效注解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:31:04