Ant の実行を速くする
Sweet Ant Tools(*) の Ant Console を使えば Ant の実行を速くすることができます。
(*) http://www.sdv.fr/pages/casa/html/sat.en.html
インストール
上の URL から sat-x.x.zip をダウンロードしてきて適当なディレクトリにインストールします。
% cd tmp % wget http://www.sdv.fr/pages/casa/arc/sat-0.9.zip % unzip sat-0.9.zip -d ~/opt
使い方
sat.jar をクラスパスに通しておきます。
export CLASSPATH="$CLASSPATH":"$HOME/opt/sat/lib/sat.jar"
そして build.xml のあるディレクトリに移動して antc を起動します。
% cd ~/src/javaproj % ls build.xml build.xml % ~/opt/sat/bin/antc antc %
この状態で実行したいターゲットを入力します。
ant % build-jar ... ant %
通常ならターゲットが終了した時点で Ant が終了しますが、 Ant Console ならこのまま再度ターゲットを実行することができ、不要な起動処理に時間を食われることがありません。
ant % build-jar # 再度実行 ...
終了するには exit を入力します。
ant % exit %
GNU/Linux での工夫
Ant を実行するとき以外は全然役に立たない Ant Console に端末を独占されるのはうれしくありません。
「対話型プログラムを透過的に使う」(*) で紹介した手法を Ant Console に対して使ってみましょう。
(*) http://dev.ariel-networks.com/Members/matsuyama/use-interactive-program-trasparently
% cd ~/src/javaproj % shdo start `pwd` antc
で Ant Console を裏で起動して、
% shdo execute `pwd` deploy
で実行します。
これをラッパーとして以下のように書きます。
~/bin/antdo:
#!/bin/sh name=`pwd` SAT_HOME=~/opt/sat export CLASSPATH="$CLASSPATH":"$SAT_HOME/lib/sat.jar" if ! shdo ls $name > /dev/null; then shdo start --prompt 'ant %' $name $SAT_HOME/bin/antc fi exec shdo execute $name $@
これで通常の Ant とそれほど差を感じることなく(オプションなどを取れるようにするならもうちょっと手を加える必要あり)、高速にすることができます。
% antdo build-jar ... % antdo deploy ...
ちなみに以下に示すぐらい速くなります。
% time ant deploy ... ant deploy 6.81s user 0.61s system 166% cpu 4.470 total % time antdo deploy ... antdo deploy 0.02s user 0.01s system 1% cpu 2.062 total
もちろん本質的な遅さはどうしようもありませんが、 Ant を実行したのにビルドを開始する気配がないイライラ感は多少軽減されるかもしれません。
- Category(s)
- linux
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/matsuyama/make-ant-faster/tbping