Ant:如何始终在每次运行结束时执行任务(不考虑目标)

Ant:如何始终在每次运行结束时执行任务(不考虑目标),ant,Ant,有没有办法在Ant中定义一个总是在每次运行的末尾执行的任务?这提供了一种方法,在每次运行的开始时,在执行任何其他目标之前,但我看到的是相反的情况 我的用例是回显一条消息,如果在运行过程中发现某个条件,则会向用户发出警告,但我希望确保它在最后回显,以便引起注意。将您的呼叫包装在顺序容器中 这是一个有趣的情况。通常情况下,我会说你不能用自动化的方式来做这件事。您可以将Ant封装在一些shell脚本中来实现这一点,但Ant本身并不是一种成熟的编程语言 我能想到的唯一一件事就是在每个任务结束时添加一个调

有没有办法在Ant中定义一个总是在每次运行的末尾执行的任务?这提供了一种方法,在每次运行的开始时,在执行任何其他目标之前,但我看到的是相反的情况


我的用例是回显一条消息,如果在运行过程中发现某个条件,则会向用户发出警告,但我希望确保它在最后回显,以便引起注意。

将您的呼叫包装在顺序容器中


这是一个有趣的情况。通常情况下,我会说你不能用自动化的方式来做这件事。您可以将Ant封装在一些shell脚本中来实现这一点,但Ant本身并不是一种成熟的编程语言

我能想到的唯一一件事就是在每个任务结束时添加一个
调用,以响应您的需求。你可以设置它,如果变量不存在,回音就不会发生。当然,这意味着要调用同一个目标十几次,才能得到最后的

我通过AntXtras和Ant Contrib查找可能的方法,但找不到任何方法


抱歉。

使用buildlistener,例如exec listener,它为每个生成结果提供taskcontainer
(BUILD SUCCESSFUL | BUILD FAILED)您可以将所有需要的任务放入其中,请参阅:


有关详细信息。

您是否尝试过将echo移动到build.xml的末尾?可能的重复:@cpeisert我查看了可能的重复,它似乎解决了一个更广泛的问题。@chrislhardin在脚本开始时执行任何目标之外的echo(即使它们可能位于build.xml的“末尾”)。这在build.xml作为一个树状结构的视图中是一致的,其中文本顺序并不重要。因此,要在所有目标之前执行某些操作,请将其放置在build.xml的“根”处,任何目标之外。但是,在所有目标之后,您需要在何处放置需要执行的内容?您可以将a链接到最终目标并向上链接,然后将默认设置为该目标,并将回声放置在最后一个块中。这是一个混乱的问题,但def将最后打印。这是一个有用的答案,至少我没有遗漏任何东西。我通常使用“在每个任务结束时调用”方法,因为从build.xml脚本中检查ant变量比从包装器shell脚本中检查更容易。