Idea-Spring-boot 项目启动无法识别lombok

文章目录

  • 前言
  • [一、lombok 是什么?](#一、lombok 是什么?)
  • [二、lombok 启动无法识别](#二、lombok 启动无法识别)
    • [2.1 原因:](#2.1 原因:)
    • [2.2 处理步骤](#2.2 处理步骤)
  • 总结

前言

项目中使用lombok 隐藏式的生成get,set ,tostring 等方法,项目编译成功,但是启动时报错无法识别lombok 组件中的 builder()。


一、lombok 是什么?

Lombok 是一个Java 库(工具类),核心作用是:通过注解替代 Java 类中重复、冗余的模板代码(如 Getter/Setter、构造器、toString、日志声明等),让代码更简洁,开发效率更高。

二、lombok 启动无法识别

Spring Boot 项目 maven install 编译成功,但启动时 Lombok 的 builder() 提示「找不到符号」,核心原因是编译阶段(Maven)和运行 / IDE 启动阶段的 Lombok 处理不一致------Maven 编译时触发了 Lombok 生成 builder() 方法,但 IDE 运行时未识别该生成代码,或运行时类加载路径缺失 Lombok 生成的字节码。

2.1 原因:

maven install 成功说明:

Maven 编译时已通过「注解处理器」触发 Lombok 生成 builder() 方法,字节码文件(class)中存在该方法;

启动时报错说明:

IDE 直接运行项目时,未启用 Lombok 注解处理,导致编辑器 / 运行时无法识别 builder()(仅识别源码,未识别 Lombok 生成的字节码);

或 IDE 运行时的类路径与 Maven 编译后的类路径不一致,加载了未生成 builder() 的源码版本。

2.2 处理步骤

步骤1: 重新编译文件,并验证 class 文件:

打开项目 target/classes/ 下对应类的 class 文件(可通过 IDEA 反编译查看),确认是否有 builder() 方法:

复制代码
若有 → 说明编译成功,仅 IDE 运行时未加载;
若无 → 回到步骤 2 检查 Maven 注解处理器配置。

步骤 2:检查 IDEA 关键配置(核心!)

IDEA 未启用 Lombok 插件或注解处理,是启动时识别不到 builder() 的最常见原因:

2.1 确认 Lombok 插件已安装并启用

复制代码
IDEA → Settings → Plugins → 搜索「Lombok」→ 确保插件已安装且「Enabled」(勾选);
若插件未安装,直接在插件市场安装后重启 IDEA(必须重启!)。

2.2 开启注解处理器(强制 IDE 识别 Lombok 生成代码)

复制代码
IDEA → Settings → Build, Execution, Deployment → Compiler → Annotation Processors;
勾选「Enable annotation processing」(启用注解处理);
勾选「Obtain processors from project classpath」(从项目类路径获取注解处理器);
点击「Apply」→「OK」,重启 IDEA。

总结

本文记录Idea-Spring-boot 项目启动无法识别lombok。

相关推荐
杨了个杨898213 小时前
Dockerfile介绍及镜像制作
java·开发语言
c++之路13 小时前
CMake 系列教程(三):变量、条件与控制流
java·windows·spring
一条泥憨鱼13 小时前
苍穹外卖【day5|Redis与店铺营业状态设置】
java·后端·mybatis·苍穹外卖
要开心吖ZSH13 小时前
AI医疗分诊与健康咨询助手agent开发——(2)让AI输出可控:结构化分诊与安全规则
java·ai·agent·健康医疗·spring ai
San813_LDD15 小时前
[C语言]《Dev-C++ 报错解决手册(Day0607 精华版)》
java·前端·javascript
Anastasiozzzz16 小时前
从有限状态机到智能体图:传统 FSM 与 Agent Graph的演进
java·人工智能·python·ai
wang09071 天前
自己动手写一个spring之IOC_2
java·后端·spring
来杯@Java1 天前
学生选课管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·maven·mybatis
不知名的老吴1 天前
线程的生命周期之线程“插队“
java·开发语言·python