Hudson 和 CruiseControl for Java 项目有什么区别?
我认为标题总结了这一点。我只是想知道为什么一个或另一个更适合从Svn的Java项目的连续集成构建。
我认为标题总结了这一点。我只是想知道为什么一个或另一个更适合从Svn的Java项目的连续集成构建。
我同意这个答案,但想补充几点。
简而言之,Hudson(更新:Jenkins)可能是现在更好的选择。首先,也是最重要的一点,因为与编辑CruiseControl的XML配置文件(我们过去为了更好地跟踪它而保留在版本控制中)相比,通过Hudson的Web UI创建和配置作业(CC词汇表中的“项目”)要快得多。后者并不是特别困难 - 它只是更慢,更乏味。
CruiseControl一直很棒,但正如Dan Dyer的博客文章所指出的那样,为什么你仍然没有使用Hudson?,它遭受了第一名的痛苦。(嗯,就像英国一样,如果你愿意的话,后来进入工业革命,当时其他人开始用更新的技术取代它。
我们大量使用CruiseControl,并逐渐切换到Hudson,最终专门使用它。更重要的是:在这个过程中,我们已经开始将CI服务器用于许多其他事情,因为设置和管理Hudson作业非常方便。(我们现在在Hudson有大约40多个工作:稳定和开发分支的常规构建和测试工作;与发布相关的工作(构建安装程序等);针对代码库运行一些(实验性)指标的工作;针对特定数据库版本运行(慢速)UI或集成测试的作业;等等。
从这次经历来看,我认为即使你有很多构建,包括复杂的构建,Hudson也是一个非常安全的选择,因为像CC一样,基本上你可以用它来做任何事情。只需将您的作业配置为按照您希望的顺序运行任何 Ant 或 Maven 目标、Unix shell 脚本或 Windows .bat脚本即可。
至于第三方的东西(杰弗里·弗雷德里克(Jeffrey Fredrick)在这里提到) - 这是一个很好的观点,但我的印象是Hudson正在迅速赶上,并且已经有大量的插件可供使用。
对我来说,我能说出的关于CruiseControl的两件事::
次要免责声明:在过去的一年左右的时间里,我没有密切关注CC项目。(但从快速浏览来看,它没有以任何戏剧性的方式改变。
注意(2011-02-03):Hudson已被重命名/分叉为Jenkins(由Hudson的创造者Kohsuke Kawaguchi等人创建)。看起来控制哈德逊名字的甲骨文也会保留“哈德逊”,但我个人的建议是和詹金斯一起去,不管甲骨文说什么。
作为一个长期的CruiseControl提交者和从未使用过Hudson的人,我非常有偏见,但我对它的看法是:
Hudson更容易启动和运行(很大程度上来自一个不错的Web界面),并且有一个非常活跃的插件开发社区。
CruiseControl得到了许多第三方的支持,并且具有使用xml配置(如插件预配置和includ.projects)进行一些巧妙的技巧的好处,这使您可以对配置信息进行项目版本控制。
如果你只打算有几台构建,我认为Hudson是明显的赢家。如果你要有很多 - 并且不介意xml - 那么我认为CruiseControl的xml配置技巧成为真正的优势。