Personal tools
You are here: Home ブログ matsuyama Ant の実行を速くする
Document Actions

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
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.