首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查两个antcall是否成功

检查两个antcall是否成功
EN

Stack Overflow用户
提问于 2013-02-12 22:38:54
回答 1查看 1.2K关注 0票数 3

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

run all是我的主要目标

代码语言:javascript
复制
<target name="run all">
<antcall target="Run basic configuration" />
<antcall target="Run custom configuration"/>

我想为"run all“目标添加一个失败条件。每个目标都会单独检查它们是否成功,但我想知道调用ant的目标是否不成功,以防这两个目标失败。另外,如果其中一个失败了,会调用另一个吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-13 00:18:36

要确定antcall是否成功,需要更仔细地定义成功是什么。这可能意味着:

  1. 在没有抛出异常的情况下执行代码。
  2. 代码执行了您想要它做的事情。

在第一种情况下,您可以使用 to catch 块包装antcall的执行,以捕获异常。trycatch任务是ant-contrib的一部分,但在Ant编码中经常使用。你会这样做:

代码语言:javascript
复制
<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任务之外,还有其他方法:

  • 使用ant antcallback任务(ant-contrib)。antcallback任务专门用于解决传回数据的需要。
  • 在定义调用相关任务的目标时使用 dependent 属性。
  • 使用runtarget任务(ant-contrib)。使用runtarget,您的所有属性都会被传递,并且您在目标中设置的任何属性都可供调用者使用。
  • 使用宏定义任务。它避免了对ant文件的重新解析,可以传递带有默认值的属性,可以传递嵌套元素,等等。因此,这是大多数情况下的首选解决方案。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14835000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档