Jenkins 声明式管道:当名称中有空格时如何访问参数值?

Jenkins declarative pipeline: How to access value of parameter when it has spaces in its name?

我只想在特定布尔参数为真时执行我的 Jenkins 管道的一个阶段。目前我的声明 Jenkinsfile 中有这个:

booleanParam(
    defaultValue: false, 
    name: 'forceGenerateNuGet'
)
...
when {
    expression { forceGenerateNuGet == "true" }
}

这很好用。但是上面是丑陋的,因为名称出现在 UI.

我想要这个(伪代码):

booleanParam(
    defaultValue: false, 
    name: 'Force generate NuGet'
)
...
when {
    expression { getValueOfParam('Force generate NuGet') == "true" }
}

这可能吗?

编辑:Devops Stack Exchange 上的这个 post 说我应该可以使用 params['Force generate NuGet'].

https://devops.stackexchange.com/questions/4711/in-jenkins-how-can-parameters-that-contain-spaces-be-referenced/4712?newreg=bc037a0b92d94b609be577272600c7fd

不过这对我不起作用。我尝试应用它和 运行 一个我设置参数的构建,但它没有获取值,因此跳过了它应该执行的步骤。 :(

如果我告诉它输出参数值,它只是告诉我它们是空的。

script {
    def force = params["Force generate NuGet"]
    echo "Force generate NuGet: ${force}"
}

输出:

[2021-02-09T15:13:37.571Z] Force generate NuGet: null

更新:事实证明 params['Force generate NuGet'] 确实有效。我有一个很长的 Jenkinsfile,其中包含一些遗留代码 覆盖 全局变量 params。这就是为什么它对我不起作用。我修改了遗留代码,现在可以获取参数了