#ant
#ant
Вопрос:
У меня есть Ant-скрипт, который запускает тесты, а затем развертывает мое приложение на сервере контроля качества. Для развертывания приложения, которое оно вызывает первым sun-appserv undeploy
, по разным причинам приложение может быть развернуто, а может и не быть развернуто. Если приложение не развернуто, то развертывание завершается неудачно, и весь скрипт останавливается.
Есть ли какой-то способ, которым я могу допустить сбой в одной задаче, зарегистрировать его и позволить остальной части сценария выполняться?
Ответ №1:
AntContrib try catch:
<trycatch>
<try>
<!-- do deployment getting return code -->
</try>
<catch>
<!-- echo the return code with a message -->
</catch>
</trycatch>
Задача exec имеет атрибут failonerror, для которого вы можете установить значение false, чтобы продолжить выполнение.
Комментарии:
1. Похоже, что пара ant-contrib try / catch должна быть заключена в тег <trycatch> .
2. Я согласен и изменил свой ответ.
Ответ №2:
Я искал что-то похожее на это и нашел альтернативный метод, который полезен, если вы хотите запустить много задач, которые не зависят друг от друга, и вы хотите знать, завершились ли все 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:testbuild.xml:5:
fail 1
fail 2
fail 3
Total time: 0 seconds
Ответ №3:
Смотрите -keep-going
Параметр, описанный здесь