Lombok注解不生效主因是三处未对齐:插件未启用(需勾选且重启IDEA)、注解处理器未开启(Settings→Compiler→Annotation Processors中必须勾选Enable)、Maven依赖scope错误(必须为provided而非compile)。

IntelliJ IDEA 中 Lombok 注解不生效,大概率不是代码写错了,而是三个地方没对齐:插件没装、注解处理器没开、Maven 依赖 scope 写成了 compile。
IDEA 插件安装后不识别 @Getter/@Setter
插件装了但编辑器仍标红、Ctrl+Click 进不去生成的方法,说明插件未真正启用或版本不匹配。
- 检查
Settings → Plugins中 Lombok 插件是否已勾选(不是只显示“Installed”) - 确认插件作者是
Michail Plushnikov(JetBrains 官方版不维护 Lombok 注解解析) - 2026 年建议用
1.18.36或更高版本插件(低版本对 JDK 21+ 和 IDEA 2025.x 支持不稳定) - 安装后必须重启 IDEA —— 仅 Reload project 不生效
Enable annotation processing 必须手动打开
即使插件和依赖都对了,@Getter 仍不生成方法,90% 是因为 IDEA 默认关闭了注解处理器。
- 路径:
Settings → Build, Execution, Deployment → Compiler → Annotation Processors - 必须勾选
Enable annotation processing,否则 Lombok 的编译期代码生成根本不会触发 - 如果项目是 Maven 多模块,该设置需在每个子模块的 Settings 中单独确认(不是全局一次搞定)
- 勾选后建议点
Apply再点OK,避免设置未提交
pom.xml 里 lombok 依赖的 scope 不能是 compile
编译报错 cannot find symbol method getName() 或运行时报 NoClassDefFoundError: lombok/Lombok,基本是 scope 配错了。
- 正确写法必须带
<scope>provided</scope>:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.36</version> <scope>provided</scope> </dependency>
<version>,必须手动补全,否则 Maven 会拉取极旧版本(如 1.16.x),与新 IDEA 不兼容provided 表示只在编译期参与,不打包进 jar —— 运行时靠 IDE 注解处理器生成字节码,不是靠运行时加载 lombok.jar@Getter/@Setter 生效但字段访问异常
代码能编译通过、getter 方法存在,但调用 getName() 报空指针或返回 null,常见于字段修饰符误用。
-
static字段不会被@Getter处理(Lombok 明确跳过) -
final字段只生成getter,不生成setter;若类上加了@Data,final 字段也不会有 setter - boolean 类型字段的 getter 名是
isActive()而非getActive(),手写调用时容易拼错 - 想控制访问级别(比如只让 package 内可 set),用
@Setter(AccessLevel.PACKAGE),别依赖默认 public
最常被忽略的是:Lombok 生成的代码只存在于编译后的字节码里,源码里看不到。调试时别盯着 .java 文件找方法 —— 按 Ctrl + 7(Windows/Linux)或 Cmd + 7(macOS)才能看到它实际生成了什么。

















