4

我们使用 JJB(Jenkins Job Builder)来生成我们的工作,但根据我找到的信息,最近我决定尝试 Jenkins DSL 插件,因为它与 JJB 相同或接近强大。尝试另一种技术的原因是我无法用 JJB 解决一个任务。它让我深入研究 DSL 插件技术,尝试创造工作并以我们使用 JJB 的方式组织一切,以了解 DSL 插件是更好还是更差,我们应该使用它来代替 JJB 还是作为补充。

网上关于这两个插件的优缺点的资料并不多,所以想请大家帮我理解一下:

  • JJB 到 Jenkins DSL 插件之间有什么优缺点
  • 一个人可以完成哪些任务而不是另一个人可以完成哪些任务?

就我自己而言,我可以说以下几点: DSL 插件优势:

  1. DSL 插件允许我们使用强大的编程语言(groovy),它允许创建更有效的作业配置。
  2. DSL 插件不依赖于插件开发——如果有新的参数和元素被添加,你可以很容易地使用节点语法添加它们。
  3. 例如,您可以使用类导入轻松地从其他 DSL 脚本中获取变量(这就是我决定尝试 DSL 插件的原因)。

DSL插件的缺点:

  1. 用它创建模板更加困难,您需要添加额外的代码才能使其工作。“using()”命令不允许您传递变量。
  2. 语法有点困难。
4

1 回答 1

5

我以前也是 JJB 的粉丝,但它遇到的问题让我无法继续努力。

当我注意到失业的DSL(2014.6?)时,它是完成这项任务的正确武器

一些问题:

  1. 对复杂配置的支持弱:通过Jenkins REST API,很多东西无法通过外部REST API进行配置。JobDSL 是基于 groovy 的,可用于从 jenkins 实例中获取内部数据。借助强大的配置块,如果正常的 DSL 不起作用,它可以操作 config.xml。

  2. 社区薄弱:JobDSL 由 jenkins 核心开发者贡献,很快得到所有用户的支持。而且越来越多的插件直接通过配置来支持。

  3. 执行模型:JJB 运行在 Jenkins API 之上,而 jobDSL 运行在 jenkins 作业内部,便于控制。

因此我推荐使用 JobDSL。

如果你的工作不是 JJB 已经支持的那么复杂,而且你的 python 粉丝,你可以肯定地坚持下去。

于 2015-07-30T01:38:54.247 回答