Hudson 以新版本编号 2.0.0 重新登场

  • Alex Blewitt
  • 马国耀

2011 年 4 月 27 日

话题:JavaDevOps语言 & 开发架构文化 & 方法

Hudson 2.0.0发布了!该版本使用了与 OSGi/Semantic 一致的版本编号。在此之前,Hudson(Jenkins 至今都是)遵循 JDK 的版本编号规则(具体而言,第一位版本号永远是 1,每次发布时第二位数字递增)。

Hudson 将来的版本编号将参照邮件列表中讨论的规则而确定,这一方法同样用于测试 OSGi 整合项目之中。

与 Jenkins 分开后,尽管 Hudson 已经发布了多个新版本(2 月 10 日发布的 1.396 以及 3 月 14 日的 1.398),但是这一新版本编号却意味着向前看的一次重要的重置。其重大改变之一是对 Hudson 插件的基础设施的更改——允许通过JSR 330的依赖注入来配置插件。

Smoothie(或“Hudson-inject”)是Sisu上的一款适配器。这是一款建立在 JSR-330 之上的容器,它使得@hudson.Extension标注可被更加通用的@Named标注和@Inject标注所替换。此外,它还支持将组件定义成@Singleton,既保证了单例又避免了静态查找。再者,你还能创建非单例组件,在服务需要它时即可注入一个实例。

OSGi 兼容性是通过Sisu的辅助实现的,Sisu 是Google Guice的扩展(此前 InfoQ 报道过),而且它依赖 OSGi 支持依赖注入。需要注意的是,没有 Sisu,Guice 自身既可用在 OSGi 中;其 3.0 版本提供了开箱即用的标准的 OSGi 互操作性。而 Sisu 所做的是,它不需要 OSGi 代码就可将 Guice 注入与 OSGi 服务绑定在一起,这使得 Guice 组件既可在 OSGi 容器内运行,也可无缝地运行在 OSGi 容器之外。NexusMaven 3等使用的就是 Sisu 容器。

JSR330 兼容性也出现在Jenkins 的路线图中;而且 Jenkins 中已经融合了其中的一部分规范。这意味着只要你想,就应该能在 Jenkins 中使用 Smoothie。

最后,Hudson 鼓励通过oss.sonatype.orgHudson 插件发布到 Maven Central中,同时提供文档介绍如何成功做到这一点。将来,Hudson 插件的开发重点是 JSR330 模型,不过为了向后兼容(和 Jenkins 的互操作性),对非 JSR330 模型的支持还将持续一段时间。对此项目感兴趣的人可以捉虫并报告缺陷,这有助于开发任务的优先级排序。


查看英文原文:Hudson Resurrected as Hudson 2.0.0

JavaDevOps语言 & 开发架构文化 & 方法