技術評論社の電子書籍」で例示したサンプルプロジェクトの展開例を紹介します。サンプルプロジェクトはWebアプリケーションを作るための構成ですが,作るアプリがWebアプリだけで終わるってプロジェクトは希ですよね。プロジェクトには多少なりともバッチ処理が含まれると思います。以下の判断の善し悪しは人によりけりですが,あたしはこんな考えてバッチ用のプログラムをプロジェクトに混ぜ込みます。WebがJavaなんで,バッチもJavaで組む(mainメソッド持ったクラスを作る)Java単体じゃバッチは起動できないので,ラウンチ用のシェルも作る(*.batとか*.shとかね)バッチ用に,WEB-INF的なディレクトリを用意して,そこにバッチ用の設定ファイルを置く(たとえば,log4j.propertiesとか)「Webとバッチじゃ目的違うんだから,プロジェクト分けろよ−」ってのが一番ありそうな指摘だけれど,Webからもバッチからも使うクラスもあるし,キレイに分けても主旨を他の開発者に理解してもらうのが億劫だしという消極的理由で同じプロジェクトにWebとバッチを混在させてます。具体的にどこをどう直すかというと,Chapter4のサンプル(1.basicってやつ)をベースにこんな風にします。ポイントは,以下のとおり。シェル置き場(${src.batch.dir})を作った。${src.batch.dir}/confにはバッチ用の設定ファイルを置くよ。バッチの成果物置き場(${dest.batch.dir})を作った。ここのディレクトリ構造がバッチ処理の構造そのものになる(./confとか./libに注目してね)。${dest.batch.dir}/libには,${lib.compile.dir}と${lib.provided.dir}の内容がコピられる。あと,${dest.java.dir}をJarに固めたのもね。バッチ処理でDBアクセスするようだったら,そのJDBCドライバは${lib.provided.dir}においてもらう。バッチの起動シェルでは,${dest.batch.dir}/lib内のJarファイルをかき集めてクラスパスを組み立てるような記述をしといてもらう。設定ファイル置き場(${dest.batch.dir}/conf)は「ボクがここを設定ファイル置き場に決めた」だけでしかないので,そっから何かを読み込むようにバッチプログラムを組むのだよ。ビルドスクリプトはそれぞれ次のように修正します。ここbuild-jenkins.xmlは,build-batchターゲットを追加して,releaseターゲットを修正します。</zip></target>なんちゃってバッチプログラム(Java)はこんなの。}}なんちゃってバッチシェルはクラスパスの設定が面倒くさいから省略w。com.example.BatchMainみたいなことをしてるとイメージしてもらえればよいです。#こうゆう横着かますからMavenizeできないんだろうなって自覚はある。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。