如果一个任务失败,继续执行ant脚本

时间:2011-10-27 14:24:14

标签: ant

我有一个运行测试的Ant脚本,然后将我的应用程序部署到QA服务器。要部署应用程序,首先调用sun-appserv undeploy,由于各种原因,可能会部署或不部署应用程序。如果未部署应用程序,则取消部署失败,整个脚本停止。

是否有某种方法可以容忍一项任务失败,记录并让其余的脚本运行?

3 个答案:

答案 0 :(得分:5)

AntContrib试试catch:

<trycatch>
<try>
   <!-- do deployment getting return code -->
</try>
<catch>
   <!-- echo the return code with a message -->
</catch>
</trycatch>

exec任务有一个failonerror属性,您可以将其设置为false以继续运行。

答案 1 :(得分:2)

我正在寻找类似于此的东西,并找到了一个替代方法,如果你想要运行很多彼此没有依赖关系的任务,你想知道它们中的所有5个是否都失败而不必修复第一个。

将所有任务包含在并行任务中,并将threadCount设置为1.这绝对是对并行任务的误用,但实现了我的目标:

<parallel threadCount="1">
    <fail message="fail 1"/>
    <fail message="fail 2"/>
    <echo message="Success"/>
    <fail message="fail 3"/>
</parallel>

在目标中运行它会为输出提供:

test:
     [echo] Success

BUILD FAILED
C:\test\build.xml:5:
fail 1
fail 2
fail 3

Total time: 0 seconds

答案 2 :(得分:0)

请参阅记录here

-keep-going选项