次のように(あなたがあなたのメイクファイルでいくつかのコードに対するAntの拡張を取引気にしない場合)、あなたはJavascriptでBuildListenerを書き込むことができます。
<project name="test-ant" default="build">
<target name="init">
<script language="javascript"> <![CDATA[
function noop() {}
var listener = new org.apache.tools.ant.BuildListener() {
buildFinished: function(e) {
project.executeTarget("_finally");
},
buildStarted: noop,
messageLogged: noop,
targetStarted: noop,
targetFinished: noop,
taskStarted: noop,
taskFinished: noop
}
project.addBuildListener(listener)
]]></script>
</target>
<target name="build" depends="init"/>
<target name="fail" depends="init">
<fail message="expected failure"/>
</target>
<target name="_finally">
<echo message="executing _finally target..."/>
</target>
</project>
が他のイベントをインターセプトあなたが見ることができるように非常に簡単でなければなりません。
'script'がターゲットの内部にある場合、' buildStarted'と 'buildFinished'イベントは正常に起動できません。 'project'の直下に' script'を置くことで解決できます。 – Alex