Hudsonプラグインまとめ
Hudsonには多くのプラグインがあるわけですが、どれをインストールすればいいのかよくわからなかったりします。
ちなみにプラグイン数やダウンロードランキングは以下参照
またプラグインの説明が英語しかなく画面キャプチャーも少ないので使い方がいまいちわからなかったりします。
使い方に関しては実際にインストールして試行錯誤するのが早いとは思いますが、
どれをインストールすればいいのかに関しての情報があんまり無いような気がするので独断と偏見で書いてみたいと思います。なおJavaプロジェクトを前提とします。
SCM連携
Subversion使っているならHudsonがデフォルトでサポートしているので何もする必要無し。
CVS, VSSは、、、いってよしっというわけにもいかない状況があるのでプラグインを入れてください。Git, Mercurialも同様です。っていうかこの4つは試してません。
BTS連携
これは使っているBTSに応じて入れたほうがいいです。Redmine PluginはTrac Pluginを真似て作ったような感じなので似ています。URLとリポジトリブラウザを設定すればすぐ使えます。JIRA PluginとMantis Pluginは使ったこと無いのでよくわかりませんが、Mantis PluginはJIRA Pluginを参考にしつつも独自路線を歩んでいるようです。
ジョーク系
これも1つか2つ入れとくといいと思います。というのもこういうので興味を引ければHudsonを見るようになってくれると思うからです。Hudson導入したはいいけど誰も見てくれないのでは意味がありません。
大規模プロジェクトでいきなりhud子さんやhud美さんのような萌え系を入れてしまうとどん引きする人がいるかもしれないのでまずはむさいおっさんからでいいのではないでしょうか。
ただChuckNorrisとBruceSchneierは画像表示の位置が同じみたいで同居できないですね。。。
ビルド通知
プラグイン名 | 説明があるURL | ダウンロード先URL | |||
Email-ext plugin | Email-ext plugin - hudson - Hudson Wiki | https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=8092&expandFolder=8092&folderID=11981 |
CIのポリシーとしては頻繁にビルドするのが正しいわけです。ただビルドのたびにメールが送信されるのはうざいです。
Hudsonではビルド失敗、不安定ビルドのときとその状態から回復したときのみメールが送信されます。つまりビルドが成功し続ければメールは送信されません。
しかしいっぽうでは定期的なバッチ処理などでビルドが成功しようが失敗しようがメールを送信したい場合があります。
その場合にこのプラグインを使います。
僕は毎日夜中にステップカウントを走らせてその結果をメールするようにしてます。
グラフ
プラグイン名 | 説明があるURL | ダウンロード先URL | |||
Plot Plugin | Plot Plugin - hudson - Hudson Wiki | https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=7788&expandFolder=7788&folderID=11981 |
Javaのプロパティファイルに
YVALUE=100
みたいな感じで書かれたファイルを読み込んで表示します。X軸はビルド番号なのでY軸の値をプロパティファイルに書くようにします。
ステップカウント結果をこれでグラフ表示すればPMが悶絶すること間違いなしw
参考
http://toshiyukikawanishi.net/modules/wordpress/index.php?p=192
コード解析
上から4つまではそれぞれFindBugs, Checkstyle, PMD, PMD's Copy Paste Detector (CPD)の出力を読み込んで結果表示する。
なのでFindBugs, Checkstyle, PMD, PMD's Copy Paste Detector (CPD)を実行するようにAntのbuild.xmlなりMaven2のpom.xmlに書く必要があります。
Warningsはコンパイラの警告を読み込んで結果表示する。javacのオプションで-Xlintの指定が必要
Task ScannerはTODO, FIXMEといったコメントを読み込んで結果表示する。これはビルドスクリプトをいじる必要が無いので導入は一番容易だと思います。
なお上記のプラグインを使う場合は以下のプラグインもインストールが必要です。
プラグイン名 | 説明があるURL | ダウンロード先URL | |||
Static Code Analysis Plugin | Static Code Analysis Plug-ins - hudson - Hudson Wiki | https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=11928&expandFolder=11928&folderID=11981 |
プラグイン名 | 説明があるURL | ダウンロード先URL | |||
Cobertura Plugin | Cobertura Plugin - hudson - Hudson Wiki | https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=7954&expandFolder=7954&folderID=11981 |
Coberturaを実行した結果のcoverage.xmlを読み込ませて表示します。
参考
404 shin1のつぶやき ないわー Not Found: Hudsonを使ってみる
ただしCoberturaはUTF-8の日本語が含むソースはLexicalエラーになるのでその場合はCobertura自体のソース改造が必要です。
その他
プラグイン名 | 説明があるURL | ダウンロード先URL | |||
Disk Usage Plugin | Disk Usage Plugin - hudson - Hudson Wiki | https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=9468&expandFolder=9468&folderID=11981 | |||
The Continuous Integration Game plugin | The Continuous Integration Game plugin - hudson - Hudson Wiki | https://hudson.dev.java.net/servlets/ProjectDocumentList?folderID=9005&expandFolder=9005&folderID=11981 |
ディスク使用量を計算するプラグインとビルド成功時に加点、ビルド失敗時に減点されるプラグイン。
ま、ゲーム感覚でやるにはいいかも。間違っても個人の能力評価に使ってはいけないです。
まとめ
使っているSCM, BTSに応じたプラグインはいれるべきでしょう。ジョーク系も1つか2つ入れていいでしょう。
コード解析はビルドスクリプトの編集が面倒なのでとりあえずはTask Scanner Pluginだけでもいれておけばいいかも。
JUnitのテストもやるならカバレッジとるのもいいと思います。ただビルドが遅くなります。ま、それ以上にテスト実行のほうが遅いと思うのであんまり気にしなくていいかも。
バッチ、ビルド昇進、認証、リリース、デプロイなどに関するプラグインについては試してないのでよくわかりません。