我想为我的Jenkins插件(使用maven构建)创建DSL扩展,就像Jenkins的Docker插件示例一样。我看到groovy文件Docker.groovy位于:src / main / resources / org / jenkinsci / plugins / docker / workflow / Docker.groovy
这个groovy文件是否必须在org.jenkinsci.plugin.docker.workflow中,或者我可以将它放在资源中吗?有什么区别?
另外,如果我以这种方式在groovy文件中定义我的DSL扩展,可以在管道文件中隐式调用DSL扩展吗?
答案 0 :(得分:4)
为了通过插件在Pipeline DSL中提供一个步骤,您需要定义一个执行所需任务的Step子类。这可以在Java中完全完成,并且是在Jenkins插件中添加扩展Pipeline DSL的首选方法。
您链接的Docker示例在此实例中并不常见,并且未定义典型的Pipeline DSL步骤(Pipeline函数中的docker
指令,如agent
之间的交叉,{{1和step
块)。此外,它似乎包含一个loads the Groovy script dynamically的Java类,它充当指令的入口点。
Groovy可用于扩展Pipeline DSL;但是这是在shared library的上下文中完成的,这意味着更多的是在内部使用的样板减少工具。