Hudson でビルド全自動化

HudsonとMaven2(とAnt)でビルド〜デプロイまで全自動化する。

事前準備

CVSNTのインストール

CVSにアクセスするため

Antのインストール

context.xmlを環境毎に変更したかったので、antで処理。
Mavenで、resourceフォルダの場所切り替えはProfileでできるんだけど、それ以外の場所のファイルを簡単に切り替える方法がよくわからない。ダサい理由

Mavenのインストール

起動

hudson.war を C:\hudson の下におく

set HUDSON_HOME=C:\hudson
java -jar hudson.war

下記にアクセスすればOK

http://localhost:8080/

※この時、デフォルトで8080ポートを使用するため、Tomcatとかぶるから注意

デプロイプラグインのインストール

デプロイプラグイン deploy.hpi
C:\hudson\plugins\ の下においておく
Hudson再起動

Hudsonの設定

Hudsonの管理→システム設定 で設定する

以下変更した場所

・ホームディレクトリ:C:\hudson になっていることを確認する(デフォルトではユーザのホームディレクトリ直下になる)
MavenMAVEN_HOME を設定
JDKJAVA_HOME を設定
・Ant: ANT_HOME を設定
CVSCVS実行ファイル を設定
(デフォルトだと C:\Program Files/cvsnt/cvs.exe)

新規ジョブ作成

フリープロジェクトでジョブを作成して、ジョブの設定を行う

ソースコード管理システム(CVS

・CVSROOT: :pserver:ユーザID@CVSサーバのアドレス:/リポジトリディレクト

例):pserver:XXXXXX@192.168.0.1:/var/lib/cvs/hoge

・モジュール: モジュール名

.cvspassが無いと怒られるので、一度コマンドラインからログインする(とアクセスできるようになった

cvs -d :pserver:XXXXXX@192.168.0.1:/var/lib/cvs/hoge login

☆☆サービスにインストールしたらCVSに繋がらなくなった
管理ツール→サービス→hudson→ダブルクリック→ログオン→アカウントにログオンユーザーを指定

Antの呼び出し


・使用するAnt: Hudsonの設定 で作ったAntを指定
・ターゲット: ビルドスクリプトのターゲット名を指定
(高度な設定を開いて)
・ビルドファイル: build/build.xml

Mavenの呼び出し


・使用するMaven: hudsonの設定 で作ったMavenを指定
・ゴール:

package -Dmaven.test.skip=true

ビルド後の処理

Tomcatにデプロイするようにする。
事前にTomcatManagerにuser/pass=tomcat/tomcatでアクセスできるようにしておくことが必要。

・Deploy war/ear to a container にチェック
・WAR/EAR files: target/hoge.war
・Container: Tomcat6.x
・Manager user name: tomcat
・Manager user password: tomcat
Tomcat URL: http://192.168.0.1:8080