对于 Java 项目来说,Hudson 和 CruiseControl 有什么区别?

发布于 2024-07-14 05:56:14 字数 56 浏览 10 评论 0 原文

我认为标题概括了这一点。 我只是想知道为什么其中一个更适合从 Svn 持续集成 Java 项目。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

辞取 2024-07-21 05:56:14

我同意这个答案< /a>,但想补充几点。

简而言之,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 脚本。

至于第 3 方的东西(杰弗里·弗雷德里克 (Jeffrey Fredrick) 在此提及) - 这是一个很好的观点,但我的印象是 Hudson 正在迅速赶上,并且已经有大量 可用插件

对我来说,我对 CruiseControl 怀念的两件事是:

  1. 它关于损坏的构建的警告电子邮件比 Hudson 的警告电子邮件提供更多信息。 在大多数情况下,根本原因可以从 CC 格式良好的 HTML 邮件本身中明显看出,而使用 Hudson,我通常需要点击 Hudson Web UI 的链接,然后单击一下以获取详细信息。
  2. CruiseControl 仪表板 更适合开箱即用,作为“信息辐射器”(显示在公共监视器上,或投影在墙上,以便您可以随时快速查看所有项目的状态)。 对于 Hudson 的首页,我们需要一些 Greasemonkey 技巧来让作业行全部变成漂亮的绿色/红色。

小免责声明:在过去一年左右的时间里,我一直没有密切关注 CC 项目。 (但是从快速浏览来看,它并没有发生任何戏剧性的变化。)

注意 (2011-02-03):Hudson 已重命名/分叉 作为 Jenkins (由 Hudson 创建者 Kohsuke Kawaguchi 等)。 看起来控制 Hudson 名称的 Oracle 也会保留“Hudson”,但我个人认为建议使用Jenkins,无论 Oracle 怎么说。

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 faster through 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.

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.)

We used CruiseControl heavily and have gradually switched over to Hudson, finally using it exclusively. And even more heavily: 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.)

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.

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 available for it.

For me, the two things I can name that I miss about CruiseControl are:

  1. 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.
  2. The CruiseControl dashboard is 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.

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.)

Note (2011-02-03): Hudson has been renamed/forked as Jenkins (by Hudson creator Kohsuke Kawaguchi and 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.

一杯敬自由 2024-07-21 05:56:14

作为一个长期的 CruiseControl 提交者从未使用过 Hudson 的人,我相当有偏见,但我的看法是:

Hudson 更容易启动和运行(很大程度上来自一个好的网络)接口)并拥有非常活跃的插件开发社区。

CruiseControl 得到了很多第 3 方内容的支持,并且具有做一些简洁的好处xml 配置的技巧,例如插件预配置和 include.projects,它允许您使用项目对配置信息进行版本控制。

如果你只打算进行一些构建,我认为 Hudson 是明显的赢家。 如果您有很多东西——并且不介意 xml——那么我认为 CruiseControl 的 xml 配置技巧将成为真正的优势。

As a long time CruiseControl committer and someone who has never used Hudson I'm pretty biased, but my take on it is:

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.

CruiseControl has support from lots of 3rd party stuff and 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.

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.

吹泡泡o 2024-07-21 05:56:14

我的上一个项目是从 CruiseControl 开始的。 这震撼了。 然后我们搬到了哈德逊,那里的震动更大。 我喜欢 Hudson 的地方:

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

  • 轻松使用现有项目作为新项目的起点 - 因此,如果您习惯于创建开发分支,那么确保这些项目处于持续集成状态是轻而易举的事情。

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:

  • 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.

梦言归人 2024-07-21 05:56:14

一个区别在于,哈德森是一位天才智力的产物——川口浩介。 正因为如此,它是一致的、连贯的、坚如磐石的。 缺点可能是进展速度受到一些限制。 然而,Kohsuke 非常多产,所以我不会太担心这一点。 而且,它是可扩展的,所以如果 Kohsuke 没有时间(或不想)做某件事,你也许可以自己做。

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.

离鸿 2024-07-21 05:56:14

我查看了 Cruise Control 和 Hudson,但选择了 Hudson,因为它更容易设置和配置。 Hudson 如今似乎被广泛使用,定期发布并通过插件提供大量可扩展性。 我会极力推荐它。

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.

明媚如初 2024-07-21 05:56:14

在我看来,Hudson 是更用户友好的选择。 它可以完全通过 Web 界面进行设置和维护(当然,除了 Web 应用程序的初始安装之外)。

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

尽管如此,在使用了两者之后,我仍然更喜欢任何一种而不是没有自动构建。

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).

The only way this could be said about CruiseControl is if you count the built-in XML file editor.

Still, having used both, I'd still prefer any one over having no automated build.

毁梦 2024-07-21 05:56:14

我尝试了巡航控制...它很好...但文件是碎片化的。 仪表板很混乱。 小部件的创建也很混乱。 从来没有尝试过哈德森。 周末会尝试。

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.

〗斷ホ乔殘χμё〖 2024-07-21 05:56:14

我最近设置 Jenkins 来使用 Subversion 构建 Borland BDS 2006 项目,我对此非常满意。 我还没有使用过 CruiseControl,所以无法比较。 请阅读我的博客文章以获取更多信息。

Delphi 项目与詹金斯

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.

Continuous integration of Delphi project with Jenkins

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文