JDK22环境下GitLab Pages Maven流水线生成Javadoc失败排查
解决maven-compiler-plugin 3.11.0不支持JDK22的问题
你的问题核心是maven-compiler-plugin 3.11.0版本过旧,未适配JDK22(包括早期访问版本),按以下步骤解决:
1. 升级maven-compiler-plugin版本
maven-compiler-plugin从3.12.0开始正式支持JDK22,在父pom.xml的pluginManagement中统一更新版本(多模块项目只需在父pom配置,子模块自动继承):
<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.12.0</version> <!-- 也可以用更高版本如3.13.0 --> <configuration> <release>22</release> <!-- 推荐用release替代source/target,适配JDK9+的模块化规范 --> </configuration> </plugin> </plugins> </pluginManagement> </build>
2. 确保GitLab CI环境使用JDK22
在.gitlab-ci.yml中指定包含JDK22的Maven镜像,避免CI环境用旧版JDK:
image: maven:3.9.6-eclipse-temurin-22 pages: script: - mvn clean javadoc:javadoc - mv target/site/apidocs public # 将生成的Javadoc移动到GitLab Pages要求的public目录 artifacts: paths: - public only: - main # 根据你的分支调整,比如master
3. 兼容极端情况(可选)
如果JDK22是极早期的EA版本,插件仍无法识别,可在编译配置中添加强制参数:
<configuration> <release>22</release> <compilerArgs> <arg>--add-modules</arg> <arg>java.se</arg> </compilerArgs> </configuration>
同时确保Maven版本不低于3.8.6,低版本Maven对新JDK的兼容性较差。
内容的提问来源于stack exchange,提问作者xtay2
相关产品推荐
相关产品推荐

