簡體   English   中英

Hudson和CruiseControl對Java項目有什么區別?

[英]What is the difference between Hudson and CruiseControl for Java projects?

我認為標題總結了它。 我只是想知道為什么一個或另一個對於Svn的Java項目的連續集成構建更好。

我同意這個答案 ,但想補充幾點。

簡而言之, Hudson (更新: Jenkins )現在可能是更好的選擇。 首先是因為創建和配置作業(CC詞匯表中的“項目”)比編輯CruiseControl的XML配置文件(我們過去只保留版本控制以便更好地跟蹤它),通過Hudson的Web UI 快得多。 后者並不是特別困難 - 它只是更慢,更乏味。

CruiseControl一直都很棒,但正如丹·戴爾(Dan Dyer)恰如其分的博客文章所述, 你為什么還沒有使用哈德森? ,它首先受到影響。 (嗯,就像英國一樣,如果你願意,后來進入工業革命,當其他人開始用更新的技術超越它時。)

我們大量使用了CruiseControl並逐漸切換到Hudson,最后完全使用它。 重要的是:在此過程中,我們開始使用CI服務器進行許多其他事情,因為設置和管理Hudson工作非常方便。 (我們現在在Hudson有大約40多個工作:穩定和開發分支的常規構建和測試工作;與發布(構建安裝程序等)相關的工作;針對代碼庫運行一些(實驗性)指標的工作;運行的工作(緩慢) )針對特定數據庫版本的UI或集成測試;等等。)

根據這一經驗,我認為即使你有很多構建,包括復雜的構建,Hudson也是一個非常安全的選擇,因為像CC一樣,你可以用它來做任何事情 只需將您的作業配置為按您希望的順序運行Ant或Maven目標,Unix shell腳本或Windows .bat腳本。

至於第三方的東西( 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說什么。

很長一段時間CruiseControl提交者從未使用過Hudson的人我很偏頗,但我對它的看法是:

Hudson更容易啟動和運行(很大程度上來自一個漂亮的Web界面),並且有一個非常活躍的插件開發社區。

CruiseControl支持來自許多第三方的東西 ,並且可以使用xml配置做一些巧妙的技巧,例如插件預配置和include.projects,它允許您使用項目對配置信息進行版本化。

如果你只有一些版本,我認為哈德森是明顯的贏家。 如果你有很多 - 而且不介意xml - 那么我認為CruiseControl的xml配置技巧成為一種真正的力量。

我的上一個項目,我們開始使用CruiseControl。 哪個搖搖欲墜。 然后我們搬到了哈德森,后者震得更厲害。 關於哈德森我喜歡的事情:

  • 上游和下游項目。 因此,對數據訪問代碼的提交最終也會觸發表示層的構建。

  • 輕松使用現有項目作為新項目的起點 - 因此,如果您習慣於創建開發分支,那么確保這些項目處於持續集成中是一件輕而易舉的事。

一個區別是哈德森是一個天才智力的產物 - Kohsuke Kawaguchi。 因此,它是一致的,連貫的,堅如磐石的。 不利方面可能是對進度的限制。 然而,Kohsuke是非常多產的,所以我不會太擔心。 而且,它是可擴展的,所以如果Kohsuke沒有時間(或不想要),你可以自己做。

我查看了Cruise Control和Hudson,但選擇了Hudson,因為它更容易設置和配置。 Hudson現在似乎被非常廣泛地用於定期發布和通過插件的大量可擴展性。 我會極力推薦它。

在我看來,Hudson是更方便用戶的選擇。 它可以通過Web界面完全設置和維護(當然,除了初始安裝webapp之外)。

關於CruiseControl的唯一方法是計算內置的XML文件編輯器。

盡管如此,在使用兩者之后,我仍然更喜歡任何一個沒有自動構建的人。

我試過克魯斯控制......它很好......但是文件是碎片化的。 儀表板令人困惑。 小部件創建也令人困惑。 沒試過哈德森。 會周末試試。

我最近設置Jenkins用於構建使用Subversion的Borland BDS 2006項目,我對它非常滿意。 我還沒用過CruiseControl,所以我無法比較。 閱讀我的博客文章了解更多信息。

Delphi項目與Jenkins的持續集成

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM