如何在哈德森和詹金斯之间做出选择?

我花了一个小时左右的时间才弄清楚哈德森最近才有分支(2011年1月) 我不知道现在每个分支的变化有多快,但更重要的是,每个分支的方向是什么,关键点是什么,让人可以做出选择。< / p >

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

206955 次浏览

詹金斯是新的哈德森。它实际上更像是一个重命名,而不是一个分支,因为整个开发社区都转移到了Jenkins。(甲骨文只能坐在角落里拿着他们的老球“Hudson”,但现在它只是一个没有灵魂的项目。)

c.f. Ethereal -> WireShark

使用Jenkins .

Jenkins是由Hudson的核心开发者开发的最近的叉。要理解其中的原因,您需要了解项目的历史。它最初是开源的,并得到Sun的支持。就像Sun做的很多事情一样,它是相当开放的,但有一点善意的忽视。源代码、跟踪器、网站等都由Sun托管在他们相对封闭的java.net平台上。

后来甲骨文收购了Sun。出于各种原因,甲骨文并不羞于利用它所认为的资产。其中包括对哈德逊物流平台的一些控制,特别是对哈德逊名称的控制。许多用户和贡献者对此感到不舒服,决定离开。

所以这取决于Hudson vs Jenkins提供了什么。甲骨文的哈德森和詹金斯都有代码。Hudson拥有甲骨文和Sonatype的企业支持和品牌。Jenkins拥有大多数核心开发人员、社区和(到目前为止)更多的实际工作。

阅读我链接顶部的帖子,然后 剩下的 这些 在时间 订单。为了平衡,你可以阅读Hudson/Oracle 接受它。我很清楚谁在防守,谁对这个项目有真正的意图。

作为chmullig写道,使用詹金斯。一些附加的要点:

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

Hudson的创建者Kohsuke川口在他的空闲时间开始了这个项目,即使他为太阳微系统公司工作,后来他们付钱让他进一步开发。@erickson注意到另一个SO问题,

[哈德森/詹金斯]是一个天才的产物 intellect-Kohsuke川口。因为 这是一致的,连贯的,

在被Oracle收购后,Kohsuke 没有停留太久 (由于缺乏监视器…?; -)),并开始为CloudBees工作。chmullig提供的链接很好地记录了从2010年末开始的开发社区和Oracle之间关于工具的冲突,并以重命名/fork/split结束。对我来说,这整个难题可能比其他任何事情都更能说明,甲骨文完全无法或不愿意以一种让各方(甲骨文、开发者、用户)满意的方式赞助一个开源项目。这不是在他们的DNA或其他东西中,就像我们在其他 情况下中看到的那样。

综上所述,我个人认为Kohsuke和其他核心开发者在这个问题上的看法是一致的,我认为Jenkins是正确的。

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

詹金斯继续了原来哈德逊的道路,频繁发布包括许多小更新。

Oracle似乎已经将关于Hudson未来路径的大部分工作委托给Sonatype团队,Sonatype团队已经完成了一些重要的更改,特别是在Maven方面。他们已经共同将其转移到Eclipse基金会。

如果你喜欢这个声音,我建议你:

  • 不太频繁的发布,但是在向后兼容性方面进行了更严格的测试(更多的是“企业风格”发布周期)
  • 一个主要专注于强大的Maven和/或Nexus集成的产品(也就是说,你对Gradle和Artifactory等不感兴趣)
  • Sonatype或Oracle提供的专业支持,而不是Cloudbees等
  • 你不介意拥有一个较小的插件开发者社区等等。

,那么我建议你去哈德森。

相反,如果你喜欢:

  • 更频繁的更新,即使它们需要更频繁的调整,并且在兼容性方面可能略有风险(更多的是“最新和最好的”发布周期)
  • 一个具有更积极的社区支持的系统,例如,其他构建系统/工件存储库
  • 原作者等人提供的支持和/或你对专业支持不感兴趣(例如,只要你能在下周的“最新和最好的”中得到修复,你就很高兴了)
  • 一个经典的oss风格的开发生态系统

那我建议詹金斯(正如一位评论者所指出的,Jenkins现在也有“LTS”版本,这是在一个更“稳定”的分支上维护的)


保守的做法是现在选择Hudson,如果必备功能不可用,则迁移到Jenkins。动态的过程是现在选择Jenkins并迁移到Hudson,如果追赶更新变得太耗时而无法证明是合理的。

我有两点要补充:第一,Hudson/Jenkins是关于插件的。插件开发人员已经转向Jenkins,我们这些用户也应该如此。第二,我个人并不是甲骨文产品的忠实粉丝。事实上,我对他们避之唯恐不及。用在甲骨文解决方案的授权和硬件上的钱,你可以雇佣两倍的工程人员,还可以每周五买啤酒。

来自Jenkins网站http://jenkins-ci.org,以下是对它的总结。

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

甲骨文现在拥有Hudson商标,但已在Eclipse EPL下授权使用。詹金斯在麻省理工学院的许可。Hudson和Jenkins都是开源的。在我看来,基于你为谁工作以及个人对开源的偏好,这个决定很简单。

希望这对你有帮助。

对于那些提到和解作为哈德森和詹金斯潜在未来的人来说,事实上詹金斯将加入SPI,在这一点上他们不太可能和解。

在前面…我是哈德逊的提交者和哈德逊书的作者,但我没有参与整个项目的分割。

无论如何,我的建议是:

看看这两种,看看哪种更适合你的需求。

Hudson将在今年晚些时候完成向顶级Eclipse项目的迁移,并且已经有一大批全职开发人员、QA和其他人员为该项目工作。它仍然很强大,拥有很多用户,并且作为Eclipse的默认CI服务器,它将继续满足许多Java开发人员的需求。查看未来的路线图和计划,您可以看到在Maven 3与2.1.0发行版完成集成之后,还会有一大堆其他有趣的特性。

http://www.eclipse.org/hudson

另一方面,Jenkins赢得了许多Hudson的原始用户,拥有跨越多种技术的庞大用户社区,还有一大批开发人员在开发它。

在这个阶段,两个CI服务器都是很好的工具,根据您在技术方面的需求,与其中一个集成可能更好。这两个产品都是开源的,您可以从不同的公司获得这两个产品的商业支持。

无论如何…如果你还没有使用CI服务器..从现在开始,你会看到巨大的好处。

2013年1月更新:经过长时间的IP清理和进一步的改进,Hudson 3.0作为第一个Eclipse基金会批准的版本现在可用。