執行完成時是否有任何方法執行目標?我有一組目標,每個目標都可以從命令行調用。執行完成後,我需要執行一些清理目標。在完成時執行目標
我可以使用antcall
但很麻煩寫一個爲每個目標。有沒有更方便的方法?
執行完成時是否有任何方法執行目標?我有一組目標,每個目標都可以從命令行調用。執行完成後,我需要執行一些清理目標。在完成時執行目標
我可以使用antcall
但很麻煩寫一個爲每個目標。有沒有更方便的方法?
有計算器上的問題like that。因此,在一般情況下,是的,你有兩個possibilites:
antcall
關於antcall的可用性:您需要能夠指定後正好針對你應該執行這個目標,你無法避免也無妨。
只是另一種方式來做到這一點。
寫定製Ant任務,其中:
擴展Ant的Task
,實現了BuildListener
或SubBuilderListener
接口,
public class ListenerTask extends Task implements SubBuildListener {
}
調用您指定的目標(或者直接用Java編寫清理代碼)在buildFinished
方法中,
@Override
public void buildFinished(BuildEvent be) {
Target target = (Target)getProject().getTargets().get("Name-To-Your-CleanUp-Target");
// run the target
target.performTasks();
}
並且,當然,它自己註冊到proj在構建的最初階段。
@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>