【问题标题】:Jenkinsfile: Define and assign values to several variables at once seems not to be implementedJenkinsfile:一次定义多个变量并为其赋值似乎没有实现
【发布时间】:2016-07-26 15:06:51
【问题描述】:

我在 Red Hat Linux 上使用 Jenkins 2.6。我想在我的 Jenkinsfile 中使用以下内容,但是当我尝试时,Jenkins 抱怨得很厉害。 (似乎只是不喜欢 = 运算符左侧的语法。):

def (a, b) = [6, 7]

它似乎不喜欢多重分配,但根据这篇文章,Groovy 1.6 及更高版本显然支持它们:

http://mrhaki.blogspot.co.uk/2009/09/groovy-goodness-multiple-assignments.html

我想这样做,以便当我调用返回 [6, 7] 的方法时,我可以这样调用它:

def (a, b) = mymethod()

def mymethod()
{
    return [6, 7]
}

谁能告诉我这是否应该在 Jenkins 中工作,如果可以,在 Jenkins 的哪个版本中?或者它是一个不受支持的功能?还是错误?

谢谢

【问题讨论】:

标签: jenkins groovy jenkinsfile


【解决方案1】:

正如here 解释的那样,管道“脚本”不是简单的 Groovy 脚本,它们在运行之前会进行大量转换,一些部分在 master 上,一些部分在 slave 上,它们的状态(变量值)被序列化并传递到下一步.因此,并不支持所有 Groovy 功能​​。

我希望在 Jenkins 文档和演示文稿中更清楚地说明这一点(这就是为什么我发现自己在重复上面的段落......对此有很多困惑)。管道是如此简单,看起来很神奇......好吧,它有点;)

似乎确实不支持多个分配。我只是找到这个参考来确认它:this example of a commit,由于这个限制,作者将他的代码从多个分配更改为简单的。

按照@rjohnston 的建议,在邮件列表中请求它可能是个好主意。

【讨论】:

  • 嗨,Scripted Pipeline 文档中的这个限制仍然有点令人困惑,因为它说“Groovy 语言提供的大多数功能都可供用户使用......”。在某个地方定义 Groovy 的真正范围会更有帮助。
【解决方案2】:

它应该是可用的(实际上它可以在脚本控制台中运行),但是它看起来好像还没有完成从管道脚本中运行它所需的一切。

开发邮件列表 (https://groups.google.com/forum/#!forum/jenkinsci-dev) 可能会告诉您这是一个错误还是只是一个不受支持的功能!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 2021-10-04
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多