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.总结

  1. 没装插件
  2. 编译器设置
  3. 未指定版本
  4. 依赖版本不对

依次排查快速解决问题

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐