Oct 31, 2005

[Maven] Cruise Control と Maven2 を連携させたい

Maven2 で管理しているプロジェクトを Cruise Control と連携させたいのだが、残念なことに最新の Cruise Control 2.3.1 でも未だ Maven2 には対応していないみたい。

仕方がないので、Cruise Control 用の Maven2Builder Plugin を作ってみた。 作ってみたと言っても、Maven 1.x 用の Builder をちょっと変えただけなのだけれども。

またもやお約束ですが、この Plugin を利用して何らかの不利益を被ったとしても一切補償はできません。 SCM などできちんと管理されたソースコードで試行して品質をご自身で判断してからご利用ください。

ダウンロード

Cruise Control 用 Maven2Builder Plugin

使い方

  1. Cruise Control 2.3.1 の環境を準備する。
  2. 上から ZIP アーカイブをダウンロードする。
  3. 上のアーカイブから maven2builder-1.0.0.jar を取り出して $CC_HOME/lib にコピーする。
  4. $CC_HOME/cruisecontrol.sh を編集する。
    • JAVA_HOME を設定
    • CRUISE_PATH に $LIBDIR/maven2builder-1.0.0.jar を追加
  5. $CC_HOME/config.xmlを編集する。
    • plugin に jp.in_vitro.cruisecontrol_plugin.maven2builder.Maven2Builder を登録。name は "maven2"
    • builder に maven2 を指定
<cruisecontrol>
  <plugin name="maven2" 
          classname="jp.in_vitro.cruisecontrol_plugin.maven2builder.Maven2Builder"/>

  <project name="Gadgets">
    <listeners>
      <currentbuildstatuslistener file="/home/cruisecontrol/logs/Gadgets/status.txt" />
    </listeners>

    <bootstrappers>
      <svnbootstrapper localWorkingCopy="/home/cruisecontrol/projects/Gadgets" />
    </bootstrappers>

    <modificationset quietperiod="30" >
      <svn localWorkingCopy="/home/cruisecontrol/projects/Gadgets"/>
    </modificationset>

    <schedule interval="300" >
      <maven2 mavenscript="/opt/maven2/bin/mvn"
              pom="/home/cruisecontrol/projects/Gadgets/pom.xml"
              goal="test"/>
    </schedule>

    <log>
      <merge dir="/home/cruisecontrol/projects/Gadgets/target/surefire-reports"/>
    </log>

  </project>
</cruisecontrol>

トラブルシューティング

Q. Cruise Control の設定方法が分かりません。
A. Cruise Control のマニュアルをご覧ください。
Q. 動きません。
A. 管理者の必要最低限の機能しか実装していません。あきらめてください。

参考サイト

Cruise Control
http://cruisecontrol.sourceforge.net/
Cruise Control への Plugin 登録方法
http://cruisecontrol.sourceforge.net/main/plugins.html#registration

Posted in Maven | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |