我们使用下面的 ant 目标来部署应用程序并执行部署后任务。使用此目标部署了多个应用程序。 对于少数目标,属性“failOnError”设置为“false”,而对于其他目标,属性“failOnError”设置为“true”。
部署完成后,我们需要发布应用程序部署报告,其中提到每个应用程序的部署是否成功完成或失败。
是否可以在“部署”目标级别识别目标中的错误/故障(上面第 2 点中提到的)并执行“deployment.report”目标?
<target name="deploy"
depends="upload.jar, create.app, disable.features, enable.features, provision.features, edit.properties, wire.application, distribute.app, deploy.app, start.app">
</target>
<target name="deployment.report">
<!-- execute java code here to update deployment report csv file -->
</target>
使用来自
trycatch
的antcontrib
我终于能够执行目标update.deployment.report
,如下所示:
<target name="deploy">
<trycatch>
<try>
<antcall target="upload.daa"/>
<antcall target="create.app" depends="upload.daa"/>
<antcall target="disable.features" depends="create.app"/>
<antcall target="enable.features" depends="disable.features"/>
<antcall target="provision.features" depends="enable.features"/>
<antcall target="edit.properties" depends="provision.features"/>
<antcall target="wire.application" depends="edit.properties"/>
<antcall target="distribute.app" depends="wire.application"/>
<antcall target="deploy.app" depends="distribute.app"/>
<antcall target="start.app" depends="deploy.app"/>
</try>
<catch>
<fail message="deployment of application - ${app.name} failed. Please check logs."/>
</catch>
<finally>
<antcall target="update.deployment.report"/>
</finally>
</trycatch>
</target>