2012-12-27 46 views
1

執行完成時是否有任何方法執行目標?我有一組目標,每個目標都可以從命令行調用。執行完成後,我需要執行一些清理目標。在完成時執行目標

我可以使用antcall但很麻煩寫一個爲每個目標。有沒有更方便的方法?

回答

0

有計算器上的問題like that。因此,在一般情況下,是的,你有兩個possibilites:

  • 使用antcall
  • 創建另一個目標取決於你和你的「乾淨」的目標。

關於antcall的可用性:您需要能夠指定後正好針對你應該執行這個目標,你無法避免也無妨。

0

只是另一種方式來做到這一點。

寫定製Ant任務,其中:

擴展Ant的Task,實現了BuildListenerSubBuilderListener接口,

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); 
} 
0

做到這一點的最簡單的方法是具有執行所需的執行序列的默認目標

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

</project>