栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

迭代的詹金斯(Jenkins)Groovy地图,具有多套

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

迭代的詹金斯(Jenkins)Groovy地图,具有多套

我假设您遇到类似的问题,就像我试图动态构建并行分支以并行执行一样。

有两点非常重要:

  1. 复制循环变量(在您的情况下为

    it
    ),并仅在并行分支内使用该副本;如果您不这样做,那么所有分支(闭包)都将引用相同的变量,而该变量当然具有相同的值。这对于闭包而言尤其如此。另请参阅:http : //groovy-lang.org/closures.html。

  2. 不要使用

    collectEntries{}
    。坚持使用Java风格的循环,因为通常情况下,groovy循环无法正常工作。一些
    .each{}
    构造可能已经起作用,但是如果有疑问,请切换到Java循环。

以下精简示例对我有用。我相信您将能够根据需要进行调整。

def products = ["A", "B", "C", "D"]def parallelStagesMap = [:]// use java-style loopfor (def product: products) {    // make a copy to ensure that each closure will get it's own variable    def copyOfProduct = product    parallelStagesMap[product] = {echo "install_Stage($copyOfProduct)"}}echo parallelStagesMap.toString()pipeline {agent any    stages {        stage('parallel stage') { steps {     script {         parallel parallelStagesMap     } }        }    }}
  1. 如果仍然不起作用:检查是否存在并升级您的
    Pipeline: Groovy
    插件,因为它们通常可以解决很多问题,这些问题通常在常规中有效,但不会在管道中解决。

您可能想检查以下相关问题,其中也包含一个最小的示例: 为并行执行使用groovy
CPS闭包



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/507032.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号