当前位置: 首页 > 面试题库 >

没有这种DSL方法的“阶段”

尹乐邦
2023-03-14
问题内容

我正在尝试为詹金斯创建我的第一个Groovy脚本:

在这里查看https://jenkins.io/doc/book/pipeline/之后,我创建了这个:

node {
  stages {

    stage('HelloWorld') {
      echo 'Hello World'
    }

    stage('git clone') {
      git clone "ssh://git@mywebsite.com/myrepo.git"
    }

  }
}

但是,我得到:

java.lang.NoSuchMethodError: No such DSL method "stages" found among steps

我想念什么?

另外,如何在不以纯文本形式编写密码的情况下将我的凭据传递到Git存储库?


问题答案:

你感到困惑和混合Scripted Pipeline使用Declarative Pipeline,完全的差异在这里看到。但简短的故事:

  • 声明性管道 是管道DSL的新扩展(基本上是只有一步的管道脚本,带有参数的管道步骤(称为指令),这些指令应遵循特定的语法。这种新格式的要点是更严格,因此对于管道新手来说应该更容易,允许图形编辑等等。
  • 脚本化管道 是高级需求的后备。

因此,如果我们查看您的脚本,则首先打开一个node步骤,该步骤来自脚本化管道。然后使用stages,它是中pipeline定义的步骤的指令之一declarative pipeline。因此,您可以例如编写:

pipeline {
  ...
  stages {
    stage('HelloWorld') {
      steps {
        echo 'Hello World'
      }
    }
    stage('git clone') {
      steps {
        git clone "ssh://git@mywebsite.com/myrepo.git"
      }
    }
  }
}

因此,如果您想使用declarative pipeline它,那是必经之路。

如果要scripted pipeline,那么您可以编写:

node {
  stage('HelloWorld') {
    echo 'Hello World'
  }

  stage('git clone') {
    git clone "ssh://git@mywebsite.com/myrepo.git"
  }
}

例如:跳过阶段块。



 类似资料:
  • 问题内容: 我在Jenkins管道中使用JSON函数并获取。我正在使用Jenkins 2.85。 任何想法如何解决这个问题? 问题答案: 使用管道实用程序步骤插件可以使用该功能。 没有此插件,您将无法使用此功能。 有关更多信息,请检查:步骤

  • 我在Jenkins管道中使用下面的Groovy脚本来调用自由风格的作业,但它最终出现了“没有这样的DSL方法‘构建’”错误。

  • 我是laravel的新手,我正在尝试在category视图中建立数据库中category表和devices表之间的许多关系我拥有所有类别,我希望当我点击到一个类别时,转到另一个视图并显示该类别的所有设备,这与我使用rsource controller进行类别和显示方法有关: 在设备视图中,我会: 这是我如何显示所有的类别,当点击一个它会进入安索视图来显示这个类别的设备 最后这是我的溃败 我的问题是

  • 我试图创建一个詹金斯管道通过詹金斯文件与共享库。我通过Web UI创建了一个作业来获取Jenkinsfile,它工作正常。然而,詹金斯似乎无法识别共享库内容。下面是Jenkinsfile和共享库内容以及控制台错误。我仔细检查了Jenkins常规配置(其中设置了共享库scm)和Pipeline插件安装。不知道还能去哪里。 共享库内容 詹金斯档案内容 日志错误

  • 我已经安装了所有的管道插件, 但我仍在得到 我漏了什么插件吗?

  • 本文向大家介绍数组有没有length()这个方法? String有没有length()这个方法?相关面试题,主要包含被问及数组有没有length()这个方法? String有没有length()这个方法?时的应答技巧和注意事项,需要的朋友参考一下 答:数组没有length()这个方法,有length的属性。String有有length()这个方法。