IntelliJ IDEA 中 Lombok 插件不生效的根本原因是插件未启用、注解处理器未开启或 JDK 与 Lombok 版本不兼容;需确保安装官方 Lombok 插件、启用 Annotation Processors、匹配版本(如 JDK 17+ 用 ≥1.18.20),并正确配置 Maven/Gradle 注解处理器路径。

IntelliJ IDEA 里 Lombok 插件装不上或不生效
根本原因通常是插件未启用、注解处理器未开启,或 JDK 版本与 Lombok 版本不兼容。Lombok 不是“装完就自动工作”的工具,它依赖 IDE 的注解处理支持。
- 先确认已安装插件:
Lombok(不是Lombok Annotations Support等旧/第三方变种)——在Settings → Plugins搜索并启用 - 必须勾选:
Settings → Build → Compiler → Annotation Processors → Enable annotation processing - 若用 JDK 17+,确保 Lombok 版本 ≥ 1.18.20;JDK 21 推荐用 1.18.30+,否则
@Builder或@RequiredArgsConstructor可能静默失效 - 重启 IDEA 后,右键项目 →
Reload project,别只刷新 Maven
Maven 项目中 Lombok 依赖加了但编译报错 cannot find symbol
这是最典型的“IDE 认得、编译器不认识”问题。Lombok 注解需要被编译器识别并生成代码,而默认的 javac 不知道它们是什么。
- 必须在
pom.xml中同时声明lombok依赖和maven-compiler-plugin配置:
<dependency><groupid>org.projectlombok</groupid><artifactid>lombok</artifactid><optional>true</optional></dependency>
<plugin><groupid>org.apache.maven.plugins</groupid><artifactid>maven-compiler-plugin</artifactid><version>3.11.0</version><configuration><annotationprocessorpaths><path><groupid>org.projectlombok</groupid><artifactid>lombok</artifactid><version>1.18.30</version></path></annotationprocessorpaths></configuration></plugin>
true 是为了防止 Lombok 被传递到下游模块,但它不影响编译时可用性annotationProcessor 'org.projectlombok:lombok:1.18.30',不能只写 compileOnly
Lombok 生成的 getter/setter 在单元测试里调不到
常见于使用了 @Data 或 @Getter 却发现 Mockito 模拟失败、或者反射调用 getClass().getDeclaredMethod("getXXX") 找不到方法 —— 这说明 Lombok 没生效,或类被其他机制提前加载。
- 检查是否误用了
@UtilityClass或@NoArgsConstructor(access = AccessLevel.PRIVATE)导致构造逻辑干扰了字段可见性 - 确认测试类所在 module 的
module-info.java(如有)中已声明requires lombok;,否则 JPMS 下注解处理器可能被忽略 - 避免在
src/test/java下直接写 Lombok 类而不配 test 专用依赖 —— 测试 scope 需显式引入 Lombok 处理器 - 用
javap -p YourClass.class查看字节码,确认方法是否真实存在;若没有,说明编译阶段根本没触发 Lombok
VS Code + Java Extension Pack 下 Lombok 支持不稳定
VS Code 的 Java 支持靠 redhat.java(即 Eclipse JDT LS),它对 Lombok 的兼容性比 IDEA 弱,尤其在多 module 或非标准 layout 项目中容易掉链子。
- 必须在项目根目录放
lombok.config,哪怕只写一行:config.stopBubbling = true,否则 JDT LS 可能读错配置层级 - 确保
settings.json中启用了:"java.configuration.updateBuildConfiguration": "interactive"和"java.compile.nullAnalysis.mode": "automatic"(后者间接激活部分注解处理) - 不要依赖 “自动下载 Lombok jar”,手动下载
lombok.jar并在设置里指定路径:"java.configuration.runtimes"或启动参数-javaagent:/path/to/lombok.jar - 遇到 “method not found” 提示但运行正常?那是语义校验假阳性,可暂时关闭:
"java.suggestions.enabled": false(仅限开发机)
Lombok 的麻烦从来不在安装动作本身,而在它横跨了编辑器、构建工具、JVM 启动参数三个层面。任何一个环节漏掉 -javaagent、注解处理器路径或模块声明,都会导致“看起来装了,实际没生孩子”。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











