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

Jenkins任务失败后Active Choice Parameter自动变为String Parameter问题排查

Jenkins参数类型异常问题

问题现象

我创建了一个参数化Jenkins任务,包含两个Active Choice Parameter:

  • 第二个为响应式参数,依赖第一个参数的选择结果
  • 两个参数均通过Groovy脚本动态生成选项值

但任务执行失败后,这两个Active Choice Parameter会自动变为String Parameter——失败前是带选项的选择框,失败后变成了普通文本输入框。

相关流水线代码

pipeline {
    agent any
    parameters {
        string(name: 'Repository', defaultValue: '')
        string(name: 'Branch', defaultValue: '')
    }
    stages {
        stage('Input Validation') {
            steps {
                script {
                    if (!params.Repository || !params.Branch) {
                        error "Repository and Branch parameters must be selected!"
                    }
                }
            }
        }
    }
}

已尝试的操作

  • 先后使用Active Choices Jenkins Plugin 2.8.1和2.8.6版本,问题均复现
  • 改用Scriptler替代直接在任务配置中编写Groovy脚本,问题依旧

可能的原因

  1. 流水线参数定义覆盖UI配置:流水线代码里显式声明了Repository和Branch为string类型参数,而UI配置的是Active Choice类型。当任务执行失败后,Jenkins可能会以流水线代码中的参数定义覆盖UI里的配置,导致Active Choice被重置为String类型。
  2. Active Choices插件的持久化bug:该插件在处理任务失败后的参数配置持久化时存在问题,尤其是响应式参数场景下,无法正确保存参数的特殊类型配置,最终降级为基础的String类型。
  3. Jenkins核心与插件版本不兼容:如果当前使用的Jenkins核心版本和Active Choices插件版本不匹配,可能会导致参数配置在任务状态变更(如失败)时出现异常覆盖。
  4. 参数序列化异常:Jenkins在任务执行失败后会重新序列化参数配置,但Active Choice参数的特殊属性(如Groovy脚本、依赖关系)未被正确序列化,导致系统默认用String类型替代。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 14:21:01