【发布时间】:2015-05-18 13:36:56
【问题描述】:
我们使用 JJB(Jenkins Job Builder)来生成我们的工作,但最近我决定尝试 Jenkins DSL 插件,因为它与 JJB 相同或接近强大,根据我找到的信息。尝试另一种技术的原因是我无法用 JJB 解决一个任务。它让我深入研究 DSL 插件技术,尝试创造工作并以我们使用 JJB 的方式组织一切,以了解 DSL 插件是更好还是更差,我们应该使用它来代替 JJB 还是作为补充。
网上关于这两个插件的优缺点的资料并不多,所以想请大家帮我理解一下:
- JJB 到 Jenkins DSL 插件的优缺点是什么
- 哪些任务可以通过一个而不是另一个来完成?
我可以说以下几点: DSL 插件优势:
- DSL 插件允许我们使用强大的编程语言 (groovy),从而可以创建更有效的作业配置。
- DSL 插件不依赖于插件开发——如果有新的参数和元素添加,您可以使用节点语法轻松添加。
- 例如,您可以使用类导入轻松地从其他 DSL 脚本中获取变量(这就是我决定尝试 DSL 插件的原因)。
DSL 插件的缺点:
- 使用它创建模板比较困难,您需要添加额外的代码才能使其工作。 “using()”命令不允许你传递变量。
- 语法有点困难。
【问题讨论】:
-
您可以使用 Groovy 代码为 DSL 脚本创建模板(或构建器/工厂)。看看Job DSL Gradle example,更具体地说是GradleCiJobBuilder.groovy。另一个优点是您可以在提交任何更改之前使用标准的 Groovy 测试框架(如 Spock)来测试您的配置。见github.com/sheehan/job-dsl-gradle-example/blob/master/src/test/…。
-
谢谢,.text() 方法真的很有用,我以后会用它,我想,我可以使用 with() 命令添加整个元素。而且测试框架也是个好东西。
标签: groovy jenkins jenkins-plugins jenkins-job-dsl