2011-10-27 124 views
2

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

有什么方法可以容忍一个任务的失败,记录它,让脚本的其余部分运行?

回答

5

AntContrib尝试捕捉:

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

Exec任务有,你可以设置为false继续下去一个failonerror属性。

+1

似乎ant-contrib try/catch对必须包含在标记中。 – Leynos

+0

我同意并修改了我的答案。 –

0

-keep-going选项记录here

0

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

附上所有的任务与经纬并行任务设置为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 
相关问题