Slim3プロジェクトをJenkinsでビルドした
Slim3を利用して作っているAppEngineのプロジェクトを、Jenkinsのジョブでビルドさせてみた。開発環境は下記のとおり。
手順は下記のとおり。
- Jenkinsでビルドするにはant用のbuild.xmlが必要になるので、既存のEclipseプロジェクトからエクスポートして利用した。但し、既にslim3用にbuild.xmlが存在するので、別の名前(build4jenkins.xml)で保存しておく。
- このbuild4jenkins.xmlをAntのビルドファイルに指定して、Jenkinsでビルドする。
- しかし、ビルドは失敗。内容を確認すると各metaクラスが存在しないとのこと。Eclipseでは自動的に生成されるxxxMeta.javaを、この環境では自分で作らないといけないわけだ。(言われてみればその通りだ)
- aptについては下記が詳しい。
- 上記の情報を参考にして、aptタスクを呼び出すようにbuild4jenkins.xmlへ追記した。
- slim3-genのjarをクラスパスに含める。
- modelクラスをターゲットに、該当するxxxMetaクラスを生成させる。
- compileオプションはfalseにしておく。(まだビルドさせない)
<path id="foo.classpath"> ... <pathelement location="lib/slim3-gen-1.0.13.jar"/> </path> <target name="build-apt" depends="init"> <apt debug="true" debuglevel="${debuglevel}" encoding="utf-8" destdir="war/WEB-INF/classes" factorypathref="foo.classpath" compile="false" target="${target}" srcdir="src/foo/model" preprocessdir="src"> <classpath refid="foo.classpath"/> </apt> </target>
- この状態でJenkinsのジョブを実行させたところ、src/foo/meta/以下にJavaのソースファイルが生成された。後は通常のビルドを行えば良い。
なお、encoding="utf-8"はMac環境での文字化けを防ぐためのおまじないのつもりだが、Jeninsの「コンソール出力」では日本語が盛大に文字化けしてしまう。Jenkinsのジョブ「設定」→「ビルド」→「Antの呼び出し」→「Javaオプション」で"-Dfile.encoding=UTF-8"を指定してもダメだった。
関連