1

実行が終了したときにターゲットを実行する方法はありますか? コマンドラインから呼び出すことができる一連のターゲットがあります。実行が終了したら、クリーンアップ ターゲットを実行する必要があります。

使用できますantcallが、すべてのターゲットに対してそれを記述するのは面倒です。もっと便利な方法はありますか?

4

3 に答える 3

0

それを行うためのちょうど別の方法。

カスタムantタスクを作成します。

Antを拡張し、 orインターフェースをTask実装し、BuildListenerSubBuilderListener

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);
}
于 2012-12-28T07:21:18.887 に答える
0

これを行う最も簡単な方法は、目的の実行シーケンスを実行するデフォルトのターゲットを用意することです

<project name="demo" default="build">
    ..
    ..
    <target name="build" depends="init, do-something, do-something-else, clean"/>

</project>
于 2012-12-28T10:52:50.790 に答える
0

そんな質問がstackoverflowにありました。したがって、一般的に、はい、2 つの可能性があります。

  • 使用するantcall
  • 自分のターゲットと「クリーン」ターゲットに依存する別のターゲットを作成します。

antcall の使いやすさについて: このターゲットを実行するターゲットを正確に指定できるようにする必要がありますが、とにかくそれを避けることはできません。

于 2012-12-27T22:39:19.753 に答える