检查两个antcalls是否成功

问题描述:

我对ant脚本非常陌生,我想知道我的构建是否成功。我的主要目标有两个反拨号,我不知道如何检查它们是否成功,以评估主要目标。检查两个antcalls是否成功

运行一切是我的主要目标

<target name="run all"> 
<antcall target="Run basic configuration" /> 
<antcall target="Run custom configuration"/> 

我想补充以失败状态为“运行的所有”目标。 每个目标都会单独检查它们是否成功,但是我想知道调用蚂蚁的目标是否失败,以防这两个目标失败。 另外,如果一方失败,另一方会被叫?

要确定一个antcall是否成功,需要更仔细地定义成功的方式。它可以表示:

  1. 该代码执行时未抛出异常。
  2. 代码做了你想做的事情。

在第一种情况下,你可以用一个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文件的重新分析,可以传递具有默认值的属性,可以传递嵌套元素等等。因此,在大多数情况下,这是首选解决方案。

在上述每种情况下,只需设置您可以在调用目标中检查的返回属性,以确定被调用或相关目标是否执行了您期望它们执行的操作。

+0

谢谢,这让我更加清楚 – diazazar 2013-02-13 08:33:07