実行が終了したときにターゲットを実行する方法はありますか? コマンドラインから呼び出すことができる一連のターゲットがあります。実行が終了したら、クリーンアップ ターゲットを実行する必要があります。
使用できますantcall
が、すべてのターゲットに対してそれを記述するのは面倒です。もっと便利な方法はありますか?
それを行うためのちょうど別の方法。
カスタムantタスクを作成します。
Antを拡張し、 orインターフェースをTask
実装し、BuildListener
SubBuilderListener
public class ListenerTask extends Task implements SubBuildListener {
}
buildFinished
指定したターゲットをメソッドで呼び出します(またはJavaで直接クリーンアップコードを記述します) 。
@Override
public void buildFinished(BuildEvent be) {
Target target = (Target)getProject().getTargets().get("Name-To-Your-CleanUp-Target");
// run the target
target.performTasks();
}
そしてもちろん、ビルドの最初の段階でプロジェクトに登録します。
@Override
public void execute() throws BuildException {
// addBuildListener will check if the listener has been added
getProject().addBuildListener(this);
}
これを行う最も簡単な方法は、目的の実行シーケンスを実行するデフォルトのターゲットを用意することです
<project name="demo" default="build">
..
..
<target name="build" depends="init, do-something, do-something-else, clean"/>
</project>
そんな質問がstackoverflowにありました。したがって、一般的に、はい、2 つの可能性があります。
antcall
antcall の使いやすさについて: このターゲットを実行するターゲットを正確に指定できるようにする必要がありますが、とにかくそれを避けることはできません。