解决在使用Lombok时maven install 找不到符号的问题

问题来源

  • Lombok 通过 注解处理器在编译阶段生成源码(如 getter/setter)。

  • 在 IDE 里直接启动项目时,IDE 内置了 Lombok 支持,所以可以正常运行。

  • 但是 mvn installmvn compile 是纯命令行编译,如果没有告诉 Maven 使用 Lombok 注解处理器,编译器就找不到 get/set 方法,因此报 "cannot find symbol"

在正确安装Lombok依赖,并且下载Lombok插件后,使用maven编译显示找不到符号的问题:

查找资料:

在IntelliJ IDEA,可以通过安装 Lombok 插件并在项目设置中启用 Lombok 支持。在 "Settings"(设置)->"Plugins"(插件)中搜索并安装 Lombok 插件,然后在 "Settings"->"Build, Execution, Deployment"->"Compiler"->"Annotation Processors" 中启用 "Enable annotation processing"(启用注解处理)。

并没有什么用,然后了解到,在idea VM 配置中添加

复制代码
-D jps.track.ap.dependencies=false

依旧没有解决

最后通过下载Maven 编译器插件专门为 Lombok 配置注解处理器解决

在父pom添加即可

XML 复制代码
<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>

原理:

maven-compiler-plugin<annotationProcessorPaths> 就是告诉 Maven:

  • 这个编译器插件在编译时,要加载 Lombok 这个注解处理器。

  • 这样 @Data@Getter@Setter 等注解就会在编译时生成对应方法。

相关推荐
⑩-19 小时前
Java-元注解 (Meta-Annotations)
java
Meteors.19 小时前
安卓进阶——原理机制
android·java·开发语言
是阿漂啊19 小时前
vscode运行springboot项目
java·spring boot·后端
ghfdgbg19 小时前
13. 配置优先级 + Bean的管理 + SpringBoot核心原理
java·spring boot·后端
Moe48819 小时前
Elasticsearch 8.1 Java API Client 客户端使用指南(索引、文档操作篇)
java·后端·面试
洋亦19 小时前
GoF23种设计模式 简介
java
Javatutouhouduan19 小时前
Java面试常问Redis核心知识点整理!
java·数据库·redis·java面试·后端开发·java架构师·java程序员
AAA简单玩转程序设计19 小时前
谁说Java枚举只是“常量装盒”?它藏着这些骚操作
java·前端
枯基Evan19 小时前
applicationTaskExecutor Spring 内置线程池失效
java·数据库·spring
优爱蛋白19 小时前
IL-21:后Th1/Th2时代的免疫新星
java·服务器·前端·人工智能·健康医疗