关于Lombok中注解失效的问题
1.问题背景
从数据库中查询数据映射到实体类时,发现无法完成映射,对象都为空。经排查发现为@Data注解没有起作用。最终原因定位为Lombok引入问题。
有问题的的依赖如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
2.问题排查
2.1 确保 Lombok 已经启用
• 在 IDE 中安装 Lombok 插件:
• IntelliJ IDEA:
1) 打开 File -> Settings -> Plugins -> 搜索 Lombok 并安装。
2)重启 IDE。
• Eclipse:
1)从 Lombok 官网 下载 lombok.jar。
2)运行 java -jar lombok.jar 配置 Eclipse。
• 确认项目设置:
1)确保 Lombok 已添加到 IDE 的 Annotation Processor 选项中。
2.2 检查IDEA配置:
• File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors。
• 勾选 Enable annotation processing。
2.3 未指定maven版本
如果未显式指定 <version> 属性,Maven 会默认选择插件的最新兼容版本。明确指定 <version>,可以确保 maven-compiler-plugin 能正确处理依赖,找到所需的注解处理器。一定要指定版本!
2.4 更新maven依赖版本
参考版本
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.36</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
3.总结
- 没装插件
- 编译器设置
- 未指定版本
- 依赖版本不对
依次排查快速解决问题