Hudson とは、いわゆる継続的ビルドを行うためのツールである。同様のものに、Cruise Control や Apache 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 コメント:
hudsonの情報を集めていてたどりつきました。Continuumは変な方向に向かいつつあるのでhudsonは期待がもてるかもですね。
Java Web Startの記述についてですが、hudsonのWebサイトでjnlpファイルへのリンクを探してみたのですが、URLがみつからなかったので教えてもらえると助かります。
コメントを投稿