Hudson和CruiseControl for Java项目之间有什么区别?


Answers:


36

作为CruiseControl的长期提交者以及从未使用过Hudson的人,我颇有偏见,但我的看法是:

Hudson的安装和运行起来非常容易(很大程度上是通过一个不错的Web界面),并且拥有一个非常活跃的插件开发社区。

CruiseControl获得了许多第三方的支持,并具有对xml配置进行一些巧妙技巧的好处,例如插件preconfiguration和include.projects,可让您使用项目对配置信息进行版本控制。

如果您只需要构建几个版本,我想哈德森无疑是赢家。如果您将拥有很多东西-并且不介意xml-那么我认为CruiseControl的xml配置技巧将成为真正的优势。


117

我同意这个答案,但想补充一点。

简而言之,哈德森(更新:詹金斯)现在可能是更好的选择。首先,因为与编辑CruiseControl的XML配置文件(我们用来保持版本控制只是为了更好地跟踪它)相比,通过Hudson的Web UI创建和配置作业(CC词汇中的“项目”)要快得多。。后者并不是特别困难-只是速度较慢且乏味。

CruiseControl很棒,但是正如Dan Dyer恰当命名的博客文章所述,为什么还不使用Hudson?,它遭受了第一。(嗯,就像英国一样,后来进入了工业革命,当时其他人开始用较新的技术取代它。)

我们大量使用CruiseControl,并逐渐切换到Hudson,最后仅使用它。而更为严重:在这个过程中,我们已经使用很多其他的事情比以前的CI服务器开始,因为建立和管理工作哈德森如此得心应手。(我们现在在哈德森拥有40多个工作:稳定和开发部门的常规构建和测试工作;与发布(构建安装程序等)相关的工作;在代码库中运行某些(实验性)指标的工作;在运行中(缓慢)的工作)针对特定数据库版本的UI或集成测试;等等。)

根据这种经验,我认为即使您有很多构建,包括复杂的构建,Hudson也是一个非常安全的选择,因为像CC一样,您基本上可以使用它进行任何操作。只需将您的作业配置为按您希望的顺序运行任何Ant或Maven目标,Unix shell脚本或Windows .bat脚本。

至于第三方的东西(这是Jeffrey Fredrick在这里提到的),这是一个好点,但是我的印象是Hudson很快赶上了潮流,并且已经有很多可用插件

对我来说,我想念的有关CruiseControl的两件事是:

  1. 它发出的有关破损构建的警告电子邮件比哈德森提供的信息更多。在大多数情况下,根本原因是CC格式良好的HTML邮件本身很明显,而使用Hudson时,我通常需要单击Hudson Web UI的链接,并单击一下以获取详细信息。
  2. CruiseControl的仪表板更适合,开箱即用,作为“信息散热器”(公共显示器上显示或投影在墙壁上,让你可以随时快速查看所有项目的状态)。在Hudson的首页上,我们需要一些Greasemonkey技巧才能使工作行全部变成绿色/红色。

次要免责声明:过去一年左右,我一直没有密切关注CC项目。(但是从快速的角度看,它并没有发生任何戏剧性的变化。)

注意(2011-02-03):哈德逊(Hudson)的创建者川口浩介Kohsuke Kawaguchi)等人将其重命名/分叉詹金斯Jenkins)。看起来,控制Hudson名称的Oracle似乎也会保留“ Hudson ”,但我个人的建议是与Jenkins一起使用,无论Oracle怎么说。


16
近两年后,我仍然同意我在上文中写过的有关哈德逊(Hudson)的一切(现在已更名为Jenkins)。作为附录,此后我一直使用Hudson做一些更有趣的事情:从某些AMI启动新的AWS EC2实例,并直接从版本控制那里部署我们的最新软件;让(精通技术的)客户控制演示应用程序的外观(通过编辑该应用程序使用的配置文件),并针对该应用程序使用的数据库运行某些管理操作(参数化作业很有用)...(续) )
约尼克

1
...定期检查网站或服务是否正常运行;成功建立中继线后不久,自动将从中继线的更改合并到所有工作分支;等等。值得注意的是,在大多数情况下,Hudson只是Shell / Python / etc脚本的前端,或者是cronjob的“更可见”替代。但是,这对于此类目的非常有用!在一个项目中,客户在我完成一项工作后,特别要求在哈德逊工作中进行管理/家政工作。对于他们的需求,它已经足够了,比登录服务器运行脚本要容易得多。
乔尼克

30

我的最后一个项目,我们从CruiseControl开始。震撼了。然后,我们搬到了哈德森(Hudson),后者的影响更大。我喜欢哈德森的事情:

  • 上下游项目。因此,提交您的数据访问代码最终还将触发表示层的构建。

  • 轻松地将现有项目用作新项目的起点-因此,如果您习惯于创建开发分支,那么确保将这些分支进行持续集成是一件容易的事。


4
+1,完全同意,尤其是关于第二点。因此,我们最终将Hudson用作了很多东西(更多信息:stackoverflow.com/questions/604385/…
Jonik,2009年

1
关于第二点,CC也很容易“将现有项目作为新项目的起点”:只需复制相关文件,进行适当的更改,然后注册新项目在中ccnet.config。真的很简单。在考虑使用CC的Jenkins时,通常情况下,“轻松”通常只是“轻松”-在GUI与XML文件中进行操作。TMTOWTDI,但都不是特别困难。
J0e3gan 2014年

15

一个区别是,哈德森是一个独到的才智-川口昌介的产物。因此,它是一致,连贯且坚如磐石的。不利方面可能是对进度的限制。但是,Kohsuke的生产力非常高,因此我不必为此担心。而且,它是可扩展的,因此,如果Kohsuke缺少某些时间(或不想要),您可以自己完成。


4

我同时浏览了Cruise Control和Hudson,但选择Hudson是因为它更容易设置和配置。目前,Hudson在常规发行版和通过插件提供的大量可扩展性方面使用非常广泛。我会极力推荐它。


3

我认为,Hudson是更人性化的选择。可以通过Web界面完全设置和维护它(当然,除了最初安装的Webapp)。

关于CruiseControl的唯一说法是,如果算上内置XML文件编辑器。

尽管如此,尽管两者都使用过,但我仍然比没有自动化构建更喜欢任何一个。


“尽管使用了这两种软件,但我仍然更喜欢没有自动化构建的软件。” +1表示理智。在最近围绕Jenkins的所有狂热和高信度中,人们似乎常常忘记了CC,Jenkins和其他成熟的CI替代品是达到目的的手段-最终,最终意义不仅仅在于手段。就个人而言,我发现CC甚至相对较新,也易于使用。詹金斯也很好。但是,对于一个与另一个进行如此大的争夺,对IMO毫无意义。
J0e3gan 2014年

1

我尝试了巡航控制系统。。。不错。但是文件零散。仪表板令人困惑。小部件的创建也令人困惑。从未尝试过哈德森。将在周末尝试。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.