#ant #build #path #build-automation
#ant #сборка #путь #сборка-автоматизация
Вопрос:
[Решаемая] — правильный файл ant contrib не был получен из расположения по умолчанию в моей системе. Необходимо указать путь вручную в XML-файле сборки следующим образом:
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="/usr/share/ant/lib/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>
-------------------------------------------
В: У меня есть скрипт на python, который запускается через ant / Jenkins следующим образом:
<project name="prjName">
<target name="preRun" description="do something">
....
</target>
<target name="Run" description="Run the python script">
<exec executable="python" failonerror="true">
<arg value="${basedir}/run.py" />
<arg value="something" />
</exec>
</target>
<target name="other1" description="do something">
....
</target>
<target name="other2" description="do something">
....
</target>
</project>
Теперь этот скрипт python запускает внешний инструмент (web-inject, который создает некоторые файлы результатов) и продолжает сканировать слово FAIL в журналах. Как только он обнаруживает СБОЙ, он выполняет sys.exit("Error")
Таким образом, сборка завершается неудачно, но я все еще хочу выполнить target — other1. Возможно ли это с помощью try-catch? Я делаю это так, но это не работает
<macrodef name="test-case">
<sequential>
<trycatch>
<try>
<exec executable="python" failonerror="true">
<arg value="${basedir}/read.py" />
</exec>
</try>
<catch>
<echo>Investigate exceptions in the run!</echo>
</catch>
<finally>
<antcall target="other1" />
</finally>
</trycatch>
</sequential>
</macrodef>
<target name="other1" description="do something">
....
</target>
Комментарии:
1. Возможно, вам потребуется подробно рассказать о том, что означает «не работает».
2. Правильно ли установлен ant-contrib?
3. Поскольку у меня низкий показатель репутации, я не могу ответить на свой собственный вопрос, поэтому оставил его нерешенным. Я отредактировал его сейчас. Спасибо!
4. @Sumitk теперь у вас хороший результат. Вы должны быть в состоянии ответить на этот вопрос