タイトルがそれを要約していると思います。SvnからのJavaプロジェクトの継続的インテグレーションビルドにどちらかが優れている理由を知りたいだけです。
8 に答える
この回答には同意しますが、いくつかの点を追加したかったのです。
要するに、Hudson (更新: Jenkins ) が今のところより良い選択である可能性があります。何よりもまず、ジョブ (CC 語彙の「プロジェクト」) の作成と構成は、CruiseControl の XML 構成ファイル (より適切に追跡するためにバージョン管理に保持していた) の編集と比較して、Hudson の Web UI を介してはるかに高速であるためです。 . 後者は特に難しいというわけではありません。単純に時間がかかり、面倒です。
CruiseControl は素晴らしいものでしたが、Dan Dyer の適切な名前のブログ投稿で述べられているように、なぜあなたはまだ Hudson を使用していないのですか? 、それは最初に苦しんでいます。(ええと、英国のように、後で産業革命に入って、他の人が新しい技術でそれを追い越し始めたときに。)
私たちは CruiseControl を多用し、徐々に Hudson に切り替え、最終的にはそれのみを使用しました。さらに重要なのは、Hudson ジョブのセットアップと管理が非常に便利であるため、以前よりも他の多くの目的で CI サーバーを使用し始めたことです。(現在、Hudson には 40 以上のジョブがあります。安定版ブランチと開発ブランチ用の通常のビルドとテストのジョブ、リリースに関連するジョブ (インストーラーのビルドなど)、コードベースに対していくつかの (実験的) メトリックを実行するジョブ、(遅い) を実行するジョブ)。 ) 特定のデータベース バージョンに対する UI または統合テストなど。)
この経験から、複雑なビルドを含む多くのビルドがある場合でも、ハドソンはかなり安全な選択であると主張します.CCのように、基本的に何でもできるからです. Ant または Maven ターゲット、Unix シェル スクリプト、または Windows .bat スクリプトを任意の順序で実行するようにジョブを構成するだけです。
サードパーティのもの ( Jeffrey Fredrick がここで言及) については、これは良い点ですが、私の印象では、Hudson が急速に追いついており、すでに非常に多くのプラグインが利用可能になっています。
私にとって、CruiseControl について欠けていると言える 2 つの点は次のとおりです。
- 壊れたビルドに関する警告メールは、ハドソンのものよりも有益でした. ほとんどの場合、根本的な原因は CC のきれいにフォーマットされた HTML メール自体から明らかでしたが、Hudson では通常、Hudson Web UI へのリンクをたどり、少しクリックして詳細を取得する必要があります。
- CruiseControl ダッシュボードは、箱から出してすぐに使用できる「情報ラジエーター」として適しています(パブリック モニターに表示されるか、壁に投影されるため、すべてのプロジェクトのステータスをいつでもすばやく確認できます)。Hudson のフロント ページでは、Greasemonkey のトリックを使ってジョブの行をすべてきれいに緑/赤にする必要がありました。
軽微な免責事項: 私はこの 1 年ほどの間、CC プロジェクトを詳しくフォローしていません。(しかし、ざっと見てみると、劇的な変化はありません。)
注(2011-02-03): Hudson は、 Jenkinsとして名前が変更/フォークされました (Hudson の作成者、 Kohsuke Kawaguchiなどによって)。Hudson の名前を管理している Oracle も「 Hudson 」を保持しているように見えますが、私の個人的な推奨事項は、Oracle が何と言おうとJenkinsを使用することです。
私の最後のプロジェクトは、CruiseControl から始まりました。揺れた。その後、ハドソンに移動しました。ハドソンはさらに揺れました。ハドソンの好きなところ:
上流プロジェクトと下流プロジェクト。したがって、データ アクセス コードへのコミットは、最終的にプレゼンテーション レイヤーのビルドもトリガーします。
既存のプロジェクトを新しいプロジェクトの開始点として簡単に使用できます。そのため、開発ブランチを作成する習慣がある場合は、これらが継続的インテグレーション下にあることを確認するのは簡単です。
1つの違いは、ハドソンは単一の天才知性、川口耕介の産物であるということです。そのため、一貫性があり、一貫性があり、堅実です。欠点は、進捗率に制限がある可能性があります。ただ、こうすけはとてつもなく多作なので、あまり気になりません。そして、それは拡張可能であるため、コウスケに時間がない(または望まない)ことがあれば、おそらく自分でそれを行うことができます。
クルーズコントロールを試してみました...それは良いです...しかし、ドキュメントは断片化されています。ダッシュボードは紛らわしいです。ウィジェットの作成も混乱を招きます。ハドソンを試したことはありません。週末にやってみます。
最近、Subversion を使用して Borland BDS 2006 プロジェクトをビルドするために Jenkins をセットアップしましたが、とても満足しています。CruiseControl はまだ使ったことがないので、比較できません。詳細については、私のブログ投稿をお読みください。