Mac, Software Development, Wine, etc...

2007/05/13

Hudson(1) 導入編

Hudson とは、いわゆる継続的ビルドを行うためのツールである。同様のものに、Cruise ControlApache Continuum などがある。Hudson を使ってみて思いのほか使い勝手がよかったので紹介してみたい。

ちなみに、ビルドは Maven 2 を利用することを前提としている。また、Apache Continuum も利用していたので、これとの比較も書いていく。結論から先にいうと、現状の Apache Continuum では話にならない。Hudson の圧勝である。まず、今回は導入の部分だけ比較してみる。その他の機能面については徐々に書いていくつもりである。

Hudson の導入は至って簡単である。WAR 形式で配布されており、これをお好みのアプリケーションサーバで動かせばよいだけである。最初にアクセスしたときにウィザード形式で進んでいくのでセットアップも簡単である。しかも、それぞれの項目にヘルプがついているので「なにこれ?」と思ったときにすぐヘルプを見ることができるのは便利。アプリケーションサーバを導入するのも面倒な向きにはもっと簡単に動かす方法がある。なんとこの WAR ファイルは、そのまま実行できるようになっている。つまり、java -jar hudson.war で実行できてしまうのである。このようになっているので、Java Web Start の仕組みを使って動かせるようにもなっている。なんとも不思議な動かし方だが、試すには簡単でいいだろう。この仕組みには、Winstone という Servlet Container が使われているので興味がある人は見てみるといいだろう。

Continuum はというと、アーカイブにアプリケーションサーバが同梱されており、これを使って動作するようになっている。ただ、この構成でしか動作させることはできず、他のアプリケーションサーバにのっけて動作できるようになっていないのが難点(予定では、1.1 から WAR 形式でも配布されるようである)。Continuum も最初にアクセスしたときに簡単なウィザードがあるので、これを使って設定できる部分もあるが、基本は設定ファイルに記述することになる。この辺の説明のドキュメントは不足気味なので、設定は Hudson のほうが楽である。ちなみに Apache と連携させて Continuum を利用していたが、ビルドを行っている最中は 502 Proxy Error が頻発していた。この辺の不安定さは改善してほしいところ。

次回は、実際に Maven 2 のプロジェクトを登録して、ビルドする部分までを比較してみる。

また、余談だが、Continuous Integration の機能を提供するツールに Damage Control というのがある(現在はアクティブに開発していないようだ)が、ここのサイトに様々な Continuous Integration の機能を持つツールを比較したドキュメントがあるので紹介する。残念ながら Hudson は入っていない。

1 コメント:

Saisse さんのコメント...

hudsonの情報を集めていてたどりつきました。Continuumは変な方向に向かいつつあるのでhudsonは期待がもてるかもですね。

Java Web Startの記述についてですが、hudsonのWebサイトでjnlpファイルへのリンクを探してみたのですが、URLがみつからなかったので教えてもらえると助かります。

Blog Archive

Profile

けろちゃん
Mihama, Chiba, Japan
詳細プロフィールを表示