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

Jenkins动态参数PREVIOUS_VERSION在Stage中无法取值的问题

Jenkins动态参数取值异常问题解决

问题根源

你猜的没错,问题出在动态生成的HTML控件名称和参数定义不匹配。你定义的动态参数名称是PREVIOUS_VERSION,但生成的input标签用了nexus_version_number作为name属性——Jenkins只会把用户输入的值绑定到参数定义的名称上,所以输入的内容根本没传到params.PREVIOUS_VERSION里,自然输出为空。

修复方案

把生成的input标签的name属性改成和参数名一致的PREVIOUS_VERSION,同时优化current选项下的返回内容(比如返回隐藏控件,确保参数始终有值)。

修正后的完整代码

properties([parameters([
        choice(name: 'VERSION',
                choices: 'current\nprevious',
                description: "============ Select current or previous build ============"),

        [$class              : "DynamicReferenceParameter",
         choiceType          : "ET_FORMATTED_HTML",
         name                : "PREVIOUS_VERSION",
         referencedParameters: "VERSION",
         script              : [$class: "GroovyScript", script: [sandbox: true, script: '''
             if ( VERSION.equals("previous") ) {
                 // 把name改成和参数名一致的PREVIOUS_VERSION
                 return "<input name='PREVIOUS_VERSION' value='' class='setting-input' type='text'>"
             } else {
                 // 返回隐藏控件,保证参数始终有值(空值)
                 return "&lt;input name='PREVIOUS_VERSION' type='hidden' value=''&gt;<span>not applicable</span>"
             }
            ''']]]
])])
pipeline {
    environment {
        VERSION_INPUT = "${params.VERSION}"
        PREVIOUS_VERSION_INPUT = "${params.PREVIOUS_VERSION}"
    }
    stages {
        stage('Initialize') {
            steps {
                echo "######## Initialize ########"
                script {
                    println VERSION_INPUT
                    println PREVIOUS_VERSION_INPUT
                }
            }
        }
    }
}

额外注意事项

  • 动态参数生成的HTML控件,name属性必须和参数定义的name完全匹配,Jenkins才能正确映射用户输入到params对象中
  • 当不需要用户输入时,返回隐藏控件可以避免参数未定义的情况,也不会影响页面显示(用span展示提示文本即可)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 18:05:16