升级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
相关产品推荐
相关产品推荐

