我有一个运行测试的Ant脚本,然后将我的应用程序部署到QA服务器。要部署应用程序,它首先调用sun-appserv undeploy
,由于各种原因应用程序可能会或可能不会被部署。如果应用程序未部署,则取消部署失败,整个脚本将暂停。如果一个任务失败,继续执行ant脚本
有什么方法可以容忍一个任务的失败,记录它,让脚本的其余部分运行?
我有一个运行测试的Ant脚本,然后将我的应用程序部署到QA服务器。要部署应用程序,它首先调用sun-appserv undeploy
,由于各种原因应用程序可能会或可能不会被部署。如果应用程序未部署,则取消部署失败,整个脚本将暂停。如果一个任务失败,继续执行ant脚本
有什么方法可以容忍一个任务的失败,记录它,让脚本的其余部分运行?
AntContrib尝试捕捉:
<trycatch>
<try>
<!-- do deployment getting return code -->
</try>
<catch>
<!-- echo the return code with a message -->
</catch>
</trycatch>
Exec任务有,你可以设置为false继续下去一个failonerror属性。
见-keep-going
选项记录here
我正在寻找类似的东西,并找到了一种替代方法,如果你想运行很多没有依赖关系的任务,并且想知道是否所有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
似乎ant-contrib try/catch对必须包含在标记中。 –
Leynos
我同意并修改了我的答案。 –