如图中显示找不到符号: 变量 log
而当我们定位到报错的源码位置时可以看到是@Slf4j注解生成的log变量报错了,这也就说明Lombok注解处理器没有工作。从而导致编译报错。 导致Lombok注解处理器没有工作的情况主要有以下几种:
- Maven编译插件缺少annotationProcessorPaths配置
- 版本兼容性问题
- 依赖范围问题
- 多模块项目依赖问题
- 编译器插件冲突
1.Maven编译插件缺少annotationProcessorPaths配置
这是最常见的原因。在Maven项目中,如果没有在maven-compiler-plugin中明确配置Lombok注解处理器路径,编译器就无法知道要使用Lombok处理器。
1.启用注解处理:
File → Settings → Build, Execution, Deployment → Compiler → Annotation Processors → 勾选 Enable annotation processing
勾选 Obtain processors from project classpath(关键选项)

2.在 pom.xml 中添加 maven-compiler-plugin 配置:
xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.42</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
2.版本兼容性问题
核心版本对应表
- JDK 6 :推荐使用 Lombok
1.16.x或更早版本(官方已停止支持)。 - JDK 7 :推荐使用 Lombok
1.18.2或更早版本。 - JDK 8 :全版本兼容(
1.16.0+),推荐1.18.20+。 - JDK 9 ~ 10 :需要 Lombok
1.18.12+(实验性支持)。 - JDK 11 :需要 Lombok
1.18.16+(推荐1.18.32+)。 - JDK 12 ~ 15 :需要 Lombok
1.18.18+。 - JDK 16 :需要 Lombok
1.18.20+(支持密封类预览特性)。 - JDK 17 :需要 Lombok
1.18.22+(推荐1.18.36+)。 - JDK 18 ~ 20 :需要 Lombok
1.18.24+。 - JDK 21 :强制要求 Lombok
≥1.18.30(推荐1.18.38+)。 - JDK 22 :需要 Lombok
1.18.34+。
3.依赖范围问题
如果Lombok依赖被错误地设置为provided 或runtime 范围,而不是compile范围,也可能导致注解处理器无法正常工作。
xml
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.42</version>
</dependency>
如果不设置范围默认值是compile ,依赖的范围从大到小依旧是compile>provided>runtime>test>system
4. 多模块项目依赖问题
在多模块项目中,如果父POM没有正确配置注解处理器,子模块即使引入了Lombok依赖也无法正常工作。
5. 编译器插件冲突
如果有其他注解处理器与Lombok冲突,可能会导致Lombok处理器无法正常运行。