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

升级Jenkins至2.361.3后Maven构建失败,求Java8兼容解决方案

可行的Workaround方案

方案1:分离Maven运行JDK与项目编译JDK

不用修改项目类型,仅调整任务配置即可解决:

  • 先在Jenkins全局工具配置中,新增Java11的安装(可选择自动下载,或指定服务器上已有的Java11路径)
  • 打开每个Maven任务的配置页,在「JDK」选项中选择刚配置好的Java11
  • 如果项目pom.xml未指定编译版本,就在Maven的「Goals and options」里添加参数:-Dmaven.compiler.source=1.8 -Dmaven.compiler.target=1.8
    这样Maven本身用Java11运行(满足Jenkins插件的版本要求),但编译出的代码仍兼容Java8,完全不影响项目的运行环境。

方案2:降级Maven Integration插件

如果不想逐个修改任务配置,可以降级Jenkins的Maven插件至支持Java8的版本:

  • 进入Jenkins的「插件管理」页面,找到「Maven Integration」插件
  • 点击插件详情中的「降级」按钮,选择最后一个标注支持Java8的版本(比如3.9.0,具体以插件版本说明的兼容信息为准)
  • 降级完成后重启Jenkins,Maven任务即可继续用Java8的JDK运行
    注意:降级插件会丢失新版插件的功能,建议先在测试环境验证核心构建流程正常后,再推广到生产环境。

方案3:批量修改Maven任务配置

针对100+任务的批量场景,可通过Jenkins脚本控制台批量操作:

  • 进入Jenkins的「脚本控制台」(路径:Manage Jenkins -> Script Console)
  • 执行以下Groovy脚本,批量给所有Maven任务指定已配置好的「Java11」JDK:
import jenkins.model.Jenkins
import hudson.tasks.MavenModuleSet

Jenkins.instance.getAllItems(MavenModuleSet.class).each { mavenJob ->
    mavenJob.setJdk(Jenkins.instance.getJDK("Java11"))
    mavenJob.save()
}

后续可根据需求,补充批量添加Maven编译参数的脚本,或确保项目pom.xml中已配置maven-compiler-plugin的source和target为1.8。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:43:32