我有一个运行测试的Ant脚本,然后将我的应用程序部署到QA服务器。要部署应用程序,首先调用sun-appserv undeploy
,由于各种原因,可能会部署或不部署应用程序。如果未部署应用程序,则取消部署失败,整个脚本停止。
是否有某种方法可以容忍一项任务失败,记录并让其余的脚本运行?
答案 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
选项