Jenkins使用Maven运行Java 21测试失败求助
解决Jenkins执行
mvn test时的Java 21相关错误 一、排查"Cannot run program ... No such file or directory"错误
- 确认Jenkins服务器是否安装Java 21:
登录Jenkins所在服务器,执行ls /usr/lib/jvm/java-21-openjdk-amd64/bin/java,如果提示文件不存在,说明你本地验证的路径是自己机器的,Jenkins服务器未安装对应JDK,需先在该服务器安装OpenJDK 21。 - 检查Jenkins运行用户权限:
假设Jenkins以jenkins用户运行,执行sudo -u jenkins /usr/lib/jvm/java-21-openjdk-amd64/bin/java -version,若提示权限拒绝,执行以下命令添加权限:sudo chmod +x /usr/lib/jvm/java-21-openjdk-amd64/bin/java sudo chown -R jenkins:jenkins /usr/lib/jvm/java-21-openjdk-amd64 - 核对JDK路径配置:
进入Jenkins全局工具配置,确认JDK安装路径与服务器实际路径完全一致,注意避免拼写错误(如amd64误写为amd32)。
二、解决"error: release version 21 not supported"错误
确认Jenkins服务器的Java 21配置无误后,需确保Maven使用该版本JDK:
- 全局关联Maven与Java 21:
在Jenkins全局工具配置中,找到Maven配置项,关联已配置好的Java 21。 - Job级别指定JDK:
进入目标Jenkins Job配置,在"构建环境"中勾选对应Java 21;或在"Invoke top-level Maven targets"构建步骤中,将"JDK"设置为你的Java 21配置。 - 验证pom.xml的compiler-plugin配置:
确保插件版本足够新(3.10.0及以上支持Java 21),且预览特性配置正确:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>21</source> <target>21</target> <release>21</release> <compilerArgs>--enable-preview</compilerArgs> <forceJavacCompilerUse>true</forceJavacCompilerUse> </configuration> </plugin>
三、测试验证
手动触发Jenkins构建,在控制台执行以下命令确认版本:
java -version mvn -v
确保两者输出的Java版本均为21,再执行mvn test验证。
内容的提问来源于stack exchange,提问作者Kastet6398
相关产品推荐
相关产品推荐

