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

升级Java8到17后Spring Boot项目Lombok注解符号找不到报错

解决Java 17升级后Lombok Javadoc编译错误

问题原因

Java 9及以上版本不再支持Lombok早期版本中用于构造器注解的@__语法,同时需要确保Lombok版本与Java 17兼容,以及Maven Javadoc插件正确处理Lombok生成的代码。

解决方案

1. 替换过时的Lombok构造器注解语法

将代码中所有类似以下的注解:

@RequiredArgsConstructor(onConstructor = @__(@Autowired))

替换为:

@RequiredArgsConstructor(onConstructor_ = @Autowired)

注意:新语法使用onConstructor_(末尾带下划线)替代原有的onConstructor,无需再嵌套@__。

2. 升级Lombok版本至兼容Java 17的稳定版

虽然Lombok 1.18.22已支持Java 17,但建议升级到更稳定的版本(如1.18.30或更高),避免潜在兼容性问题。修改pom.xml中的版本配置:

<properties>
     <lombok.version>1.18.30</lombok.version>
     <java.version>17</java.version>
</properties>

3. 配置Maven Javadoc插件

确保Maven Javadoc插件能识别Lombok注解,避免编译错误。在pom.xml的<build>节点下添加插件配置:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.4.1</version>
        <configuration>
            <source>17</source>
            <target>17</target>
            <encoding>UTF-8</encoding>
            <!-- 忽略Lombok生成代码中的源错误,避免Javadoc编译失败 -->
            <additionalOptions>--ignore-source-errors</additionalOptions>
            <!-- 将Lombok依赖加入Javadoc插件的类路径 -->
            <dependencies>
                <dependency>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <version>${lombok.version}</version>
                </dependency>
            </dependencies>
        </configuration>
    </plugin>
</plugins>

4. 验证配置

执行Maven命令重新生成Javadoc:

mvn javadoc:javadoc

若仍有错误,可尝试清理项目后重新构建:

mvn clean install javadoc:javadoc

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:40:31