如何在 Jenkins 管道脚本中重新分配参数?

How do I reassign parameters in a Jenkins pipeline script?

我是 Jenkins 和 groovy 脚本的新手。我正在尝试重新分配 Jenkins 脚本中的参数。

我尝试了以下方法

def reasignParams() {
    if(params.B == '') {
       params.B = params.A
    }
}

pipeline{
    parameters {
         string(name: 'A', defaultValue: '1.1', description: "Master Value")
         string(name: 'B', defaultValue: '', description: "Slave value")
    }
}

在运行上面的Jenkins管道脚本(groovy)之后,我运行进入了下面的错误

java.lang.UnsupportedOperationException

我想到的替代方案如下

def reasignParams() {
        if(params.B == '') {
           def temp = params.A
           # use temp variable instead of params.B; But this is inconvenient
        }
    }

我想知道是否有办法在 Jenkins 管道脚本中重新分配参数?任何帮助将不胜感激,提前致谢!

Jenkins Pipeline中的params对象不支持对其成员变量进行write操作。您最初只能在 parameters 指令中分配它们(在这个意义上将其视为构造函数)。如果你想重新分配参数值,那么你确实需要像下面这样进行深拷贝:

newParams = [:]
newParams.A = params.A