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

如何使Jenkinsfile中的Choice参数默认返回第一个元素?

让Jenkins Choice参数默认选中第一个选项的方法

嘿,我来帮你搞定这个问题!要让你的Choice参数默认返回第一个元素,其实有两种简单的方式,看你偏好哪种:

方法1:利用字符串格式的choices自动默认第一个选项

Jenkins Pipeline里,当你用换行分隔的字符串定义choices时,第一个选项会自动被设为默认值。不过如果遇到配置或Jenkins版本导致默认行为不生效的情况,更明确的方法会更稳妥。

方法2:明确指定defaultValue参数

如果你想强制确保默认值是第一个选项,可以把choices改成列表形式,然后加上defaultValue参数明确指定。这种方式兼容性更好,不会有默认行为失效的问题。

修改后的完整properties代码如下:

properties([ 
    buildDiscarder(logRotator(/*artifactDaysToKeepStr:'15',*/ artifactNumToKeepStr: '10', daysToKeepStr: '3', numToKeepStr: '5000')), 
    parameters( [
        choice(
            choices: ['Site1', 'Site2', 'Site3', 'Site4', 'all'], 
            description: 'What site ?', 
            name: 'site',
            defaultValue: 'Site1' // 明确指定第一个选项为默认值
        ), 
        choice(
            choices: ['dev', 'test', 'uat', 'prod'], 
            description: 'What environment ?', 
            name: 'environment',
            defaultValue: 'dev' // 同样指定第一个选项为默认值
        )
    ] ), 
    pipelineTriggers([cron('* * * * *')]) 
])

补充说明

  • 如果你习惯用换行分隔的字符串写法,也可以搭配defaultValue使用:
    choice(
        choices: 'Site1\nSite2\nSite3\nSite4\nall', 
        description: 'What site ?', 
        name: 'site',
        defaultValue: 'Site1'
    )
    
  • 之后在Stage的sh操作里,直接通过params.site或params.environment就能获取到默认值(用户未修改参数时),比如:
    stage('Execute Script') {
        steps {
            sh "Running script for site: ${params.site}, environment: ${params.environment}"
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:00:20