如何在Hudson和Jenkins之间做出选择?

455

我花了一个小时左右才弄清楚Hudson最近才分支出来(2011年1月)。
我不知道每个分支的变化速度有多快,但更重要的是,每个分支的方向是什么,关键点是什么,这样一个人就可以在它们之间做出选择。

有人有产品路线图和功能差异的链接吗?


4
你最终在Jenkins和Hudson之间选择了哪一个? - chmullig
112
@Kev:我不同意这个问题不具有建设性。它并不像“X vs. Y,哪个更好”的辩论那样,而是关于Hudson的一个分支,这是非常有用的信息。 - tanascius
11
是的,这个帖子需要重新开放以获取更更新的答案。 - djangofan
7
我理解那种问题的危险性,但我认为它(i)提出了一些非常有趣的信息,(ii)没有引发任何争议,(iii)是合法的,因为如果没有这种信息很难做出选择。 - lab419
显示剩余11条评论
8个回答

508

使用Jenkins

Jenkins是Hudson核心开发人员最近分支出来的项目。要了解其原因,您需要了解该项目的历史。它最初是由Sun支持的开源项目。就像Sun所做的许多事情一样,它相当开放,但还是有点被忽视。源代码、跟踪器、网站等都托管在Sun的相对封闭的java.net平台上。

然后Oracle收购了Sun。由于各种原因,Oracle并没有对其认为的资产控制感到羞怯。其中包括对Hudson物流平台的某些控制,特别是对Hudson名称的控制。许多用户和贡献者不太舒服,并决定离开。

因此,问题在于Hudson与Jenkins提供什么。Oracle的Hudson和Jenkins都有代码。Hudson拥有Oracle和Sonatype的企业支持和品牌。Jenkins拥有大部分核心开发人员、社区和(到目前为止)更多的实际工作。

请阅读我在上面链接的帖子,然后 阅读 其余部分 这些 按时间顺序 排序。如果您想了解更多,请阅读Hudson/Oracle 对此的看法。对我来说,谁是在进行防御和谁有真正意图为该项目服务是非常清楚的。


11
大多数人背后都支持这个项目 - 这似乎是该项目创始人的真实想法,但值得注意的是Sonotype(Maven公司)已经致力于支持Hudson阵营,并计划进行一系列架构方面的改变。有趣的是看看Jenkins团队是否仍有足够的创新能力来留住开发者/用户的关注。 - magicduncan
6
至少根据这份简短的比较,在拆分两周后,Jenkins明显更加活跃。无论如何,虽然我支持Jenkins,但看到Sonatype的人们在做什么也是很有趣的。 - Jonik
15
这是@Jonik的简短比较文章作者的另一篇更新,这次更新距离上一篇已经过去了大约2个月。 - chmullig
18
现在五年过去了,Jenkins蓬勃发展,而Oracle已经把Hudson扔到了“Eclipse大象坟场”,虽然名字还在,但已被放弃。 - Thorbjørn Ravn Andersen
现在Hudson已经正式被放弃了。 - O'Rooney

118

正如chmullig所写, 使用Jenkins。以下是一些额外的要点:

...还有一些背景信息:

Hudson的创始人Kohsuke Kawaguchi在他的空闲时间开始了这个项目,即使他当时正在Sun Microsystems工作并且后来被他们支付以进一步开发它。正如@erickson在另一个SO问题中指出的那样

[Hudson/Jenkins]是单一天才智慧的产物-Kohsuke Kawaguchi。因为这个,它是一致的,连贯的和非常稳定的。

在被Oracle收购后,由于缺乏监控,Kohsuke 没待多久就离开了(又是因为什么呢?;-]),然后进入了CloudBees工作。 2010年底开始的开发社区与Oracle之间的工具冲突,最终导致重命名/分叉/拆分,这些都有文献记录,链接由chmullig提供。 对我来说,整个难题或许比其他任何事情都更能说明Oracle在资助开源项目方面的彻底无能或不愿意使所有各方(Oracle、开发人员、用户)满意。 也许这不是他们的DNA问题,正如我们在其他 案例中看到的那样。

鉴于以上种种,个人认为我会像Kohsuke和其他核心开发者一样,选择Jenkins。


90

这只是我对此事的看法,三个月后:

Jenkins继续以原始Hudson为蓝本,发布频繁且包含许多次要更新。

Oracle似乎已经将未来Hudson道路的工作主要委托给了Sonatype团队,他们做了一些重大变更,特别是与Maven相关。他们共同将其移至Eclipse基金会。

如果您喜欢:

  • 发行较少但经过更多回退兼容性测试(更具“企业级”发布周期特征)
  • 产品主要关注于与Maven和/或Nexus集成(即您不关注Gradle和Artifactory等)
  • Sonatype或甲骨文提供的专业支持服务优先于Cloudbees等
  • 你不介意拥有较小的插件开发社区等。

那么我建议使用Hudson。

相反,如果您喜欢:

  • 更频繁的更新,即使它们需要更频繁的调整,并且在兼容性方面可能稍微冒险(更具“最新和最好”的发布周期特征)
  • 系统具有更活跃的社区支持,例如其他构建系统/工件存储库
  • 原始创建者等提供的支持服务和/或您不关注专业支持(例如,只要在下周的“最新和最好”中修复问题即可)
  • 一个经典的OSS风格的开发生态系统

那么我建议使用Jenkins。(正如一位评论者所指出的,Jenkins现在还有维护更“稳定”分支的“LTS”版本)


保守的做法是现在选择Hudson,并在必须使用功能不可用时迁移到Jenkins。动态的做法是现在选择Jenkins,并在跟新变得过于耗时以至于难以证明时迁移到Hudson。


22
或者您可以兼顾两全,使用新的Jenkins长期支持(LTS)版本! - Christopher Orr

48

首先声明,我是Hudson项目的提交者和《Hudson》书籍的作者,但并未参与整个项目分裂事件。

无论如何,这是我的建议:

检查两个工具,看哪个更适合你的需求。

Hudson将在今年晚些时候完成迁移到成为Eclipse主要项目,并有许多全职开发人员、QA和其他人员在项目上工作。它仍然非常强大,而且有很多用户,作为Eclipse默认的CI服务器,它将继续满足许多Java开发人员的需求。通过查看路线图和未来计划,可以看到在2.1.0版本中实现了Maven 3集成之后,还有许多其他有趣的功能。

http://www.eclipse.org/hudson

另一方面,Jenkins赢得了许多原始的Hudson用户,并拥有跨多种技术的大量用户社区,也有许多开发人员在为它工作。

在这个阶段,这两个CI服务器都是非常好用的工具。根据你的技术集成需求,选择其中一个可能会更好。这两个产品都是开源的,你可以从各种公司获得商业支持。

无论如何……如果你还没有使用CI服务器……现在就开始使用其中之一吧,你会看到巨大的好处。

2013年1月更新:经过长时间的知识产权清理和进一步改进,Hudson 3.0作为第一个获得Eclipse基金会批准的版本现已推出。


38

Jenkins是新的Hudson。实际上,它更像是一次更名而不是一个分支,因为整个开发社区已经转移到了Jenkins。(Oracle现在坐在角落里,拿着他们的旧球“Hudson”,但它只是一个没有灵魂的项目。)

类似于Ethereal -> WireShark。


我该如何处理正在运行的Hudson构建服务器?我猜它不会自动更新到新的Jenkins分支/重命名。我需要从头开始设置构建服务器吗? - Michael Küller
4
您可以像以前从一个Hudson版本升级到另一个版本一样,将其“升级”到Jenkins。 - nrobey
我目前正在运行Hudson 1.395。目前它没有显示可用的更新。更名的更新会在以后推出吗? - Michael Küller
3
不,Hudson(Oracle)不会向Jenkins提供更新;如果Oracle愿意与社区合作,就不会出现分裂。除非猪会飞,埃里森先生成为你友好的邻居等不可能发生的事情。 - Nathan Kidd
8
请查看此处:http://wiki.jenkins-ci.org/display/JENKINS/Upgrading+from+Hudson+to+Jenkins 来了解如何将Jenkins添加到Hudson的升级中心。 - Simon D
@NathanKidd +1,感谢您提到“C.f. Ethereal -> WireShark”,这真的很清晰明了。谢谢。 - Mawg says reinstate Monica

27

我有两个要点需要补充。第一,Hudson/Jenkins的重点在于插件。插件开发者已经转移到Jenkins上了,我们用户也应该跟随他们的步伐。第二,我个人不是Oracle产品的铁杆粉丝。事实上,我像避瘟疫一样避免使用它们。为了购买Oracle解决方案所需的许可证和硬件,你可以雇佣两倍的工程师并仍然有余钱购买每周五的啤酒 :)。


1
由于所有插件的存在,一个Jenkins可能会与另一个有很大不同,并且安装下一次也可能会有所不同。 - bbaassssiiee

4

从Jenkins网站http://jenkins-ci.org可以看出,Jenkins CI是领先的开源持续集成服务器。它是用Java构建的,提供了超过300个插件来支持构建和测试几乎任何项目。

简而言之,Jenkins CI是领先的开源持续集成服务器。它是用Java构建的,提供了超过300个插件来支持构建和测试几乎任何项目。

Oracle现在拥有Hudson商标,但已经根据Eclipse EPL许可证进行授权。Jenkins基于MIT许可证。Hudson和Jenkins都是开源的。根据您所在公司和个人对开源的偏好,决策是很明显的。

希望这有所帮助。


3
Hudson现在是一个顶级的Eclipse项目。 - Manfred Moser
14
Oracle现在拥有Hudson,而Jenkins是开源的。两者都采用MIT许可证,将其中一个描述为开源,另一个则是非开源是具有误导性的。它们都是自由软件。 - pb2q
1
Oracle显然拥有Hudson名称的所有权(作为商标)。 - Thorbjørn Ravn Andersen

4

对于那些提到Hudson和Jenkins可能会和解的人,考虑到Jenkins将加入SPI,目前看来他们不太可能和解。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接