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

Jenkins使用Rebuilder插件重建任务时无法加载Choice parameters选项求助

解决Jenkins Rebuilder插件丢失单选选择参数选项的问题
  • 优先升级Rebuilder插件到最新稳定版
    部分旧版本Rebuilder存在参数类型识别bug,对单选选择参数的序列化/反序列化处理异常,导致重建时被转为字符串参数。进入Jenkins插件管理页面找到Rebuilder,升级到最新稳定版后重试,多数情况下可解决问题。

  • 切换为Pipeline任务(若适用)
    若你的任务是Pipeline类型,直接在Jenkinsfile中明确定义单选参数,Rebuilder对Pipeline参数的兼容性更好,重建时能完整保留可选选项:

    parameters {
      choice(
        name: 'DEPLOY_ENV',
        choices: ['dev', 'test', 'prod'],
        description: '选择部署环境'
      )
    }
    
  • 用Groovy脚本强制恢复参数类型
    若升级插件后问题仍存在,可通过Jenkins脚本控制台执行以下脚本,在Rebuilder加载参数时强制恢复单选参数的可选选项:

    import hudson.model.*
    import org.jenkinsci.plugins.rebuilder.RebuildAction
    
    Jenkins.instance.getAllItems(Job).each { job ->
      job.getActions(RebuildAction).each { action ->
        def rebuildParams = action.getRebuildParameters()
        rebuildParams.each { param ->
          if (param instanceof StringParameterValue) {
            def paramDefs = job.getProperty(ParametersDefinitionProperty)?.getParameterDefinitions()
            if (paramDefs) {
              def originalDef = paramDefs.find { it.getName() == param.getName() }
              if (originalDef instanceof ChoiceParameterDefinition) {
                rebuildParams.remove(param)
                rebuildParams.add(new ChoiceParameterValue(param.getName(), param.getValue(), originalDef.getChoices()))
              }
            }
          }
        }
      }
    }
    

    注意:执行前备份Jenkins配置,避免意外。

  • 替代方案:使用原生重新触发功能
    若上述方法均不生效,可放弃Rebuilder插件:进入任务的构建历史,找到目标构建后,点击"Replay"(Pipeline任务)或在构建详情页选择"Build with Parameters",手动选择参数重新触发,此方式能完整保留参数选项。

内容的提问来源于stack exchange,提问作者Nadav Avrahami

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 04:50:17