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

Jenkins Pipeline:如何将定义的列表用作作业参数

Jenkins Pipeline 复用预定义参数列表的方法

你的原代码问题在于:Declarative Pipeline的parameters块不支持直接引用外部定义的变量,需要通过以下两种方式实现复用预定义参数列表:

方法一:在Pipeline外部通过properties步骤定义参数

直接在pipeline代码块外使用properties步骤,将预定义的参数列表传入,作业加载时就能识别这些参数:

def myParams = [
    string(name: 'PARAM19', defaultValue: 'value19'),
    string(name: 'PARAM20', defaultValue: 'value20')
]

// 注册预定义参数列表
properties([parameters(myParams)])

pipeline {
    agent any
    stages {
        stage('Example') {
            steps {
                echo "PARAM19: ${params.PARAM19}"
                echo "PARAM20: ${params.PARAM20}"
                echo "ok"
            }
        }
    }
}

方法二:在Pipeline内部动态设置参数(适合动态生成场景)

如果需要在流水线执行过程中动态生成参数,可以在steps里嵌入script块,调用properties步骤完成参数注册:

pipeline {
    agent any
    stages {
        stage('Initialize Parameters') {
            steps {
                script {
                    def myParams = [
                        string(name: 'PARAM19', defaultValue: 'value19'),
                        string(name: 'PARAM20', defaultValue: 'value20')
                    ]
                    properties([parameters(myParams)])
                }
            }
        }
        stage('Example') {
            steps {
                echo "PARAM19: ${params.PARAM19}"
                echo "PARAM20: ${params.PARAM20}"
                echo "ok"
            }
        }
    }
}

注意事项

  • 第一次运行作业时,参数不会立即显示在作业的参数输入界面,触发一次执行后,后续运行才会加载参数选项。
  • 流水线中可通过params.参数名的方式调用这些参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 08:17:10