Spring Boot从2.5.x升级到3.0.0后Lombok报“cannot find symbol”错误
嘿,我前阵子升级Spring Boot的时候也踩过一模一样的坑!这问题本质是Lombok版本和Spring Boot 3.0不兼容——毕竟Spring Boot 3.0要求Java 17起步,而你之前搭配2.5.x用的旧版Lombok,对Java 17的支持还不完善,导致IDE和编译工具都识别不到Lombok自动生成的Setter方法,所以才会报“cannot find symbol”。
给你几个亲测有效的解决步骤:
升级Lombok到兼容版本
Spring Boot 3.0官方推荐的Lombok版本至少是1.18.26(或者更高),如果是Maven项目,直接更新pom.xml里的依赖:<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <scope>provided</scope> </dependency>更省心的方式是依赖Spring Boot父项目的版本管理,这样不用手动指定版本,自动适配:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.0</version> <relativePath/> </parent>此时Lombok依赖可以去掉
version标签,让父依赖帮你选最合适的版本。刷新IDE缓存并重新构建
IntelliJ有时候会缓存旧的编译信息,导致即使升级了依赖也报错。你可以:- 点击
File -> Invalidate Caches... - 选择
Invalidate and Restart,重启IDE - 重新执行
mvn clean install,或者在IDE里触发Maven的clean和install操作
- 点击
检查IDE的Lombok插件和注解配置
确保你的IntelliJ已经安装了Lombok插件,并且开启了注解处理:
打开Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors,勾选Enable annotation processing。
如果是Gradle项目,思路也是一样的——升级build.gradle里的Lombok版本,确保和Spring Boot 3.0匹配,然后同步项目再重新构建。
备注:内容来源于stack exchange,提问作者Ballazx

