I have an Ant script which runs tests then deploys my application to a QA server. To deploy the application it first calls sun-appserv undeploy
, for various reasons the application may or may not be deployed. If the application is not deployed then undeploy fails and the whole script halts.
Is there some way that I can tolerate a failure on one task, log it, and let the rest of the script run?
See the
-keep-going
option documented hereI was looking for something similar to this and found an alternative method that is useful if you want to run a lot of tasks that have no dependency on each other and you want to know if all 5 of them fail without having to fix the first one.
Enclose all the tasks in a parallel task with threadCount set to 1. It's definitely a mis-use of the parallel task but accomplishes my goal:
Running this in a target gives this for output:
AntContrib try catch:
The exec task has a failonerror attribute which you can set to false to keep going.