Сценарий Ant прекращает выполнение целей после целевой сборки-войны-развертывания проекта gwt

У меня есть сценарий ant, который вначале выполняет некоторые проверки, а затем компилирует код и развертывает его на сервере tomcat. Сценарий для процесса сборки-войны-развертывания выглядит так:

<target name="build-war-deploy" depends="clean-up,gwtc,check-settings" description="Package GWT app to web archive and deploy to web server">
<war basedir="${war.dir}" destfile="${deploy.dir}/${app.name}.war" webxml="${webinf.dir}/web.xml">
<!-- <include name="WEB-INF/**" /> -->
<webinf dir="${webinf.dir}/">
<include name="**/*.jar" />
</webinf>
</war>
</target>

Эта цель работает отлично, то есть после запуска ant-скрипта приложение действительно развертывается на tomcat.

После цели build-war-deploy мне нужно выполнить некоторые процессы очистки, поэтому я создал несколько других целей и добавил зависимость к цели build-war-deploy, чтобы она выполнялась впоследствии.

<target name="cleanup" depends="build-war-deploy" description="clean up processes">
<exec dir="./" executable="python" failonerror="true">
    <arg line="deploy_cleanup.py ${app.name}" />
</exec>
</target>

Однако после того, как сценарий ant выполняет цель build-war-deploy, он останавливается и сообщает, что сборка прошла успешно. Кто-нибудь знает, почему не выполнила последнюю цель?

build-war-deploy:
      [war] Building war: C:\Apache Tomcat\apache-tomcat-6.0.33\webapps\test.war
BUILD SUCCESSFUL
Total time: 2 minutes 22 seconds

person mkn    schedule 06.10.2012    source источник
comment
Указываете ли вы цель в командной строке и / или у вас есть цель по умолчанию, установленная в файле сборки?   -  person martin clayton    schedule 06.10.2012
comment
все цели указаны в файле сборки.   -  person mkn    schedule 06.10.2012
comment
Попробуйте запустить очистку ANT. Я подозреваю, что цель по умолчанию - build-war-deploy   -  person Mark O'Connor    schedule 06.10.2012
comment
ты прав. цель build-war-deploy устанавливается по умолчанию: S   -  person mkn    schedule 06.10.2012


Ответы (1)


Я бы попробовал использовать свойство вывода. Возможно, файл python выполняется - не делает то, что вы хотите, а выполняет и возвращает результаты, которых вы никогда не видите. Я имею в виду, что если скрипт python возвращает сообщение об ошибке, разве муравей не считает это успешно выполненным?

Что-то типа:

<exec dir="./" executable="python"  outputproperty="outProp" failonerror="true">
    <arg line="deploy_cleanup.py ${app.name}" />
</exec>
<echo>${outProp}</echo>

outputproperty: имя свойства, в котором должны храниться выходные данные команды. Если поток ошибок не перенаправлен в отдельный файл или поток, это свойство будет включать вывод ошибки.

person user1258245    schedule 06.10.2012