Java 项目的 Hudson 和 CruiseControl 有什么区别?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/604385/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
What is the difference between Hudson and CruiseControl for Java projects?
提问by Jay R.
I think the title sums it up. I just want to know why one or the other is better for continous integration builds of Java projects from Svn.
我认为标题总结了它。我只想知道为什么一个或另一个更适合来自 Svn 的 Java 项目的持续集成构建。
采纳答案by Jeffrey Fredrick
As a long time CruiseControl committer andsomeone who has never used Hudson I'm pretty biased, but my take on it is:
作为 CruiseControl 的长期提交者和从未使用过 Hudson 的人,我非常有偏见,但我的看法是:
Hudson is much easier to get up and running (in large part from a nice web interface) and has a very active plugin development community.
Hudson 更容易启动和运行(很大程度上来自一个漂亮的 Web 界面)并且拥有一个非常活跃的插件开发社区。
CruiseControl has support from lots of 3rd party stuffand has the benefit of doing some neat tricks with the xml configuration like plugin preconfiguration and include.projects which lets you version the configuration information with the project.
CruiseControl 得到了许多3rd 方的支持,并且可以使用 xml 配置做一些巧妙的技巧,例如插件预配置和 include.projects,它允许您使用项目对配置信息进行版本控制。
If you're only going to have a few builds I think Hudson is the clear winner. If you're going to have lots -- and don't mind the xml -- then I think CruiseControl's xml configuration tricks become a real strength.
如果您只打算进行一些构建,我认为 Hudson 是明显的赢家。如果您打算拥有很多——并且不介意 xml——那么我认为 CruiseControl 的 xml 配置技巧将成为真正的优势。
回答by erickson
One difference is that Hudson is the product of a single genius intellect—Kohsuke Kawaguchi. Because of that, it's consistent, coherent, and rock solid. The downside could be some limitation on the rate of progress. However, Kohsuke is incredibly prolific, so I wouldn't be too worried about that. And, it's extensible, so if there's something Kohsuke doesn't have time for (or doesn't want), you can probably do it yourself.
一个区别是哈德森是单一天才智力的产物——川口康介。正因为如此,它是一致的、连贯的、坚如磐石的。不利的一面可能是对进展速度的一些限制。然而,Kohsuke 非常多产,所以我不会太担心。而且,它是可扩展的,所以如果 Kohsuke 没有时间(或不想要)的东西,你可以自己做。
回答by toolkit
My last project, we started off on CruiseControl. Which rocked. Then we moved to Hudson, which rocked even more. The things I liked about Hudson:
我的最后一个项目,我们从 CruiseControl 开始。哪个震撼。然后我们搬到了哈德逊,那里更加震撼。我喜欢哈德森的地方:
The upstream and downstream projects. So a commit to your data access code will eventually also trigger a build of the presentation layer.
Easily use an existing project as the starting point of a new one - so if you are in the habit of creating development branches, then making sure these are under continuous integration is a snap.
上下游项目。因此,对数据访问代码的提交最终也会触发表示层的构建。
轻松使用现有项目作为新项目的起点 - 因此,如果您有创建开发分支的习惯,那么确保这些分支处于持续集成状态是轻而易举的事。
回答by Joachim Sauer
Hudson is the more user-friendly alternative in my opinion. It can be set up and maintained completely via the web interface (apart from the initial installation of the webapp, of course).
在我看来,Hudson 是更用户友好的选择。它可以完全通过 Web 界面进行设置和维护(当然,除了 webapp 的初始安装)。
The only way this could be said about CruiseControl is if you count the built-in XML file editor.
关于 CruiseControl 的唯一说法是,如果您算上内置的 XML 文件编辑器。
Still, having used both, I'd still prefer any one over having no automated build.
尽管如此,在使用了两者之后,我仍然更喜欢任何一个而不是没有自动构建。
回答by Mark
I looked at both Cruise Control and Hudson but choose Hudson as it was much easier to setup and configure. Hudson seems very widely used these days with regular releases and lots of extensiblity through plugins. I would highly recommend it.
我查看了 Cruise Control 和 Hudson,但选择了 Hudson,因为它更容易设置和配置。Hudson 似乎非常广泛地使用这些天定期发布和通过插件的大量可扩展性。我会极力推荐它。
回答by Jonik
I agree with this answer, but wanted to add a few points.
我同意这个答案,但想补充几点。
In short, Hudson(update: Jenkins) is likely the better choice now. First and foremost because creating and configuring jobs ("projects" in CC vocabulary) is just so much fasterthrough Hudson's web UI, compared to editing CruiseControl's XML configuration file (which we used to keep in version control just to keep track of it better). The latter is not especially difficult - it simply is slower and more tedious.
简而言之,Hudson(更新:Jenkins)现在可能是更好的选择。首先也是最重要的,因为与编辑 CruiseControl 的 XML 配置文件(我们过去保留版本控制只是为了更好地跟踪它)相比,通过 Hudson 的 Web UI创建和配置作业(CC 词汇中的“项目”)要快得多. 后者并不是特别困难——它只是更慢、更乏味。
CruiseControl has been great, but as noted in Dan Dyer's aptly-named blog post, Why are you still not using Hudson?, it suffers from being first. (Um, like Britain, if you will, later into the industrial revolution, when others started overtaking it with newer technologies.)
CruiseControl 非常棒,但正如 Dan Dyer 恰当命名的博客文章中所述,为什么您仍然不使用 Hudson?,它遭受第一。(嗯,就像英国,如果你愿意的话,后来进入工业革命,当其他人开始用更新的技术超越它时。)
We used CruiseControl heavily and have gradually switched over to Hudson, finally using it exclusively. And even moreheavily: in the process we've started using the CI server for many other things than before, because setting up and managing Hudson jobs is so handy. (We now have some 40+ jobs in Hudson: the usual build & test jobs for stable and development branches; jobs related to releasing (building installers etc); jobs that run some (experimental) metrics against the codebase; ones that run (slow) UI or integration tests against a specific database version; and so on.)
我们大量使用 CruiseControl,并逐渐切换到 Hudson,最终只使用它。而更为严重:在这个过程中,我们已经使用很多其他的事情比以前的CI服务器开始,因为建立和管理工作哈德森如此得心应手。(我们现在在 Hudson 有大约 40 多个工作:稳定和开发分支的常用构建和测试工作;与发布相关的工作(构建安装程序等);针对代码库运行一些(实验性)指标的工作;运行(缓慢)的工作) 针对特定数据库版本的 UI 或集成测试;等等。)
From this experience I'd argue that even if you have lots of builds, including complicated ones, Hudson is a pretty safe choice because, like CC, you can use it to do anything, basically. Just configure your job to run whatever Ant or Maven targets, Unix shell scripts, or Windows .bat scripts, in the order you wish.
根据这次经验,我认为即使您有很多构建,包括复杂的构建,Hudson 也是一个非常安全的选择,因为与 CC 一样,您基本上可以用它来做任何事情。只需将您的作业配置为按您希望的顺序运行任何 Ant 或 Maven 目标、Unix shell 脚本或 Windows .bat 脚本。
As for the 3rd party stuff (mentioned here by Jeffrey Fredrick) - that is a good point, but my impression is that Hudson is quickly catching up, and that there's already a very large number of plugins availablefor it.
至于 3rd 方的东西(这里由 Jeffrey Fredrick 提到)——这是一个很好的观点,但我的印象是 Hudson 正在迅速迎头赶上,并且已经有大量的插件可用。
For me, the two things I can name that I miss about CruiseControl are:
对我来说,我想念的关于 CruiseControl 的两件事是:
- Its warning emails about broken builds were more informative than those of Hudson. In most cases the root cause was evident from CC's nicely formatted HTML mail itself, whereas with Hudson I usually need to follow the link to Hudson web UI, and click around a little to get the details.
- The CruiseControl dashboardis better suited, out of the box, as an "information radiator" (shown on a public monitor, or projected on a wall, so that you can always quickly see the status of all projects). With Hudson's front page, we needed some Greasemonkey tricks to get job rows all nicely green/red.
- 它关于损坏的构建的警告电子邮件比 Hudson 的信息更丰富。在大多数情况下,根本原因从 CC 格式良好的 HTML 邮件本身就很明显,而对于 Hudson,我通常需要点击 Hudson Web UI 的链接,然后稍微点击一下以获取详细信息。
- 在CruiseControl的仪表板更适合,开箱即用,作为“信息散热器”(公共显示器上显示或投影在墙壁上,让你可以随时快速查看所有项目的状态)。使用 Hudson 的首页,我们需要一些 Greasemonkey 技巧才能使作业行全部显示为绿色/红色。
Minor disclaimer: I haven't been following the CC project closely for the last year or so. (But from a quick look, it has not changed in any dramatic way.)
次要免责声明:在过去一年左右的时间里,我一直没有密切关注 CC 项目。(但从快速浏览来看,它并没有发生任何戏剧性的变化。)
Note(2011-02-03): Hudson has been renamed/forkedas Jenkins(by Hudson creator Kohsuke Kawaguchiand others). It looks as if Oracle—which controls the Hudson name—will keep "Hudson" around too, but my personal recommendation is to go with Jenkins, no matter what Oracle says.
注意(2011-02-03):Hudson 已被重命名/分叉为Jenkins(由 Hudson 创建者Kohsuke Kawaguchi等人)。看起来似乎控制 Hudson 名称的 Oracle 也会保留“ Hudson”,但我个人的建议是使用Jenkins,无论 Oracle 怎么说。
回答by Jonik
I tried Cruise control...Its good...But documents are fragmented. Dashboard is confusing. Widget creation is also confusing. Never tried hudson. Will try on weekend.
我试过巡航控制......它很好......但文件是零散的。仪表盘混乱。小部件创建也令人困惑。从来没有试过哈德森。周末试试。
回答by Richard Zwinkels
I recently setup Jenkins for building Borland BDS 2006 projects making use of Subversion and I am very happy with it. I never used CruiseControl yet, so I can't compare. Read my blog post for more information.
我最近设置 Jenkins 来使用 Subversion 构建 Borland BDS 2006 项目,我对它非常满意。我从来没有用过 CruiseControl,所以我无法比较。阅读我的博客文章了解更多信息。