jenkins脚本化dsl中的$ class语法

T-L*_*-Lo 6 groovy jenkins jenkins-pipeline

通常在查看脚本化的詹金斯管道代码时,我会看到这种模式...

step([$class: 'GitHubSetCommitStatusBuilder',
        statusMessage: [content: 'Pipeline Started']])
Run Code Online (Sandbox Code Playgroud)

我没有运气找到有关此技术的文档,如果有人可以解释它的作用以及何时/为什么有用,我将非常乐意。我相信这是实例化和填充基础groovy类的成员的一种方法-但更多的细节将不胜感激。

这也记录在任何地方吗?

ama*_*ouz 5

这里是简要解释语法的参考。基本上,您是以名称/值对的形式向step()函数提供参数映射。第一个参数特别用名称$ class表示,它告诉函数要实例化哪个类(插件)。

似乎还不赞成使用此语法,而希望使用较短的语法,该语法也在同一链接中进行了说明。

  • 管道文档已移至 https://jenkins.io/doc/book/pipeline/ ,不幸的是,它省略了记录 $class 的含义 - 但这篇文章实际上确实正确解释了 $class 。/sf/ask/3204122701/ (2认同)

Add*_*ang 0

我也在努力解决这种语法,但不幸的是还没有找到任何文档。

我猜这个语法是用来进行实例初始化的。

所有步骤类都实现接口BuildStep。加载脚本后,所有步骤实例都会启动,然后perform在构建过程中调用它们的方法。

以上都是我的猜测。