我想为詹金斯插件(使用maven构建)创建DSL扩展名,就像在jenkins的Docker插件中一样。我看到Groovy File docker.groovy在:src/main/resources/org/jenkinsci/plugins/docker/docker/docker.groovy
这个时髦的文件必须在org.jenkinsci.plugin.docker.workflow中,还是可以将其放入资源中?有什么区别?
另外,如果我以这种方式定义了groovy文件中的DSL扩展,是否可以在管道文件中隐式调用DSL扩展名?
为了通过插件在管道DSL中提供一个步骤,您需要定义执行所需任务的步骤子类。这可以在Java中完全完成,并且是在Jenkins插件中添加管道DSL的首选方法。
在这种情况下,您链接的Docker示例是不寻常的,并且没有定义典型的管道DSL步骤(管道中的docker
指令函数,例如agent
,step
和context
块之间的交叉功能)。此外,它似乎包括一个动态加载Groovy脚本的Java类,该类充当指令的入口点。
Groovy可用于扩展管道DSL;但是,这是在共享库的上下文中完成的,这本来可以更像是一种用于内部使用的样本板。