You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级至Spring Boot 3引发注解处理错误求助

Spring Boot 3.0.13升级后Lombok注解处理器失效编译错误解决

问题现象

将应用从Spring Boot 2.7.8升级至3.0.13后,Maven编译阶段出现cannot find symbol错误,典型示例:

<file location>:[85,69] error: cannot find symbol
    symbol:   method getRuleName()
    location: class RuleManagerDto
<file location>:[9,64] error: cannot find symbol
    symbol:   class ResultBuilder
    location: class Result

错误均指向Lombok@Data生成的getter方法、@Builder生成的Builder类,推测为注解处理器未正常工作。

针对性解决方案

以下是你未尝试过的关键排查修复步骤:

1. 对齐Lombok与Spring Boot 3的版本兼容性

Spring Boot 3基于Jakarta EE规范,对Lombok版本有明确要求,必须使用1.18.30及以上版本(推荐1.18.36)。同时要确保项目中Lombok版本与依赖管理一致:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.36</version>
    <scope>provided</scope>
</dependency>

如果是通过Spring Boot父依赖管理,无需手动指定版本,但需排除团队自定义库中可能存在的旧版Lombok依赖,避免版本冲突:

<dependency>
    <groupId>你的团队自定义库groupId</groupId>
    <artifactId>你的团队自定义库artifactId</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </exclusion>
    </exclusions>
</dependency>

2. 升级Maven Compiler插件并规范配置

Spring Boot 3要求JDK 17,需确保maven-compiler-plugin版本支持JDK 17(推荐3.11.0+),同时明确指定source/target版本,并修正注解处理器路径配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
        <source>17</source>
        <target>17</target>
        <annotationProcessorPaths>
            <path>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.36</version>
            </path>
            <path>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct-processor</artifactId>
                <version>1.6.0</version>
            </path>
            <path>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok-mapstruct-binding</artifactId>
                <version>0.2.0</version>
            </path>
        </annotationProcessorPaths>
    </configuration>
</plugin>

注:annotationProcessorPaths内的Lombok版本必须与依赖中的版本完全一致。

3. 检查IntelliJ IDEA的注解处理配置

  • 确保Lombok插件已启用:Settings -> Plugins,搜索Lombok并确认启用状态
  • 开启注解处理:Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors,勾选Enable annotation processing
  • 确认项目JDK配置:Project Structure -> Project Settings -> Project,设置SDK为JDK 17,Language Level为17

4. 彻底清理缓存与依赖

  • 执行Maven清理命令:mvn clean -U install -Dmaven.repo.local=./temp-repo(用临时仓库避免本地缓存干扰)
  • 清理IntelliJ缓存:File -> Invalidate Caches...,选择Invalidate and Restart
  • 删除本地Maven仓库中旧版Lombok缓存:找到~/.m2/repository/org/projectlombok目录,删除后重新拉取依赖

5. 排查代码注解冲突

  • 检查使用@Data的类是否存在手动编写的部分getter/setter,可能与Lombok生成的代码冲突
  • 检查@Builder是否与@NoArgsConstructor/@AllArgsConstructor冲突,建议使用@Builder(toBuilder = true)配合@Data时保持注解简洁

内容的提问来源于stack exchange,提问作者Bugalley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 12:40:58