检查两个antcalls是否成功
问题描述:
我对ant脚本非常陌生,我想知道我的构建是否成功。我的主要目标有两个反拨号,我不知道如何检查它们是否成功,以评估主要目标。检查两个antcalls是否成功
运行一切是我的主要目标
<target name="run all">
<antcall target="Run basic configuration" />
<antcall target="Run custom configuration"/>
我想补充以失败状态为“运行的所有”目标。 每个目标都会单独检查它们是否成功,但是我想知道调用蚂蚁的目标是否失败,以防这两个目标失败。 另外,如果一方失败,另一方会被叫?
答
要确定一个antcall是否成功,需要更仔细地定义成功的方式。它可以表示:
- 该代码执行时未抛出异常。
- 代码做了你想做的事情。
在第一种情况下,你可以用一个trycatch块捕捉异常封装你antcall的执行。 trycatch任务是ant-contrib的一部分,但是它经常用于Ant编码。你会这样做:
<trycatch property="exception.message" reference="exception.object">
<try>
<antcall target="targetName"/>
</try>
<catch>
<!-- handle exception logic here -->
</catch>
<finally>
<!-- do any final cleanup -->
</finally>
</trycatch>
在第二种情况下,你需要传回给调用者一些状态,指示代码做了你想做的事情。
请注意,antcall任务重新加载ant文件(例如build.xml),因此它可能是一个昂贵的操作。还有其他选择使用antcall任务:
- 使用antcallback任务(蚂蚁的contrib)。 antcallback任务专门解决了传回数据的需求。
- 定义目标以调用相关任务时,使用取决于属性。
- 使用runtarget任务(ant-contrib)。使用runtarget,您的所有属性都会被传递,并且您在目标中设置的任何属性都可供调用者使用。
- 使用macrodef任务。它避免了对ant文件的重新分析,可以传递具有默认值的属性,可以传递嵌套元素等等。因此,在大多数情况下,这是首选解决方案。
在上述每种情况下,只需设置您可以在调用目标中检查的返回属性,以确定被调用或相关目标是否执行了您期望它们执行的操作。
谢谢,这让我更加清楚 – diazazar 2013-02-13 08:33:07