【发布时间】:2016-10-25 02:00:55
【问题描述】:
我有一个 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 任务有一个 failonerror 属性,您可以将其设置为 false 以继续执行。
【讨论】:
我一直在寻找与此类似的东西,并找到了一种替代方法第一个。
将所有任务包含在线程计数设置为 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
【讨论】:
查看-keep-going 选项记录的here
【讨论】: