我有一个ant脚本,它在开始时执行一些检查,然后编译代码并将其部署到tomcat服务器。 build-war-deploy过程的脚本如下所示:
<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
答案 0 :(得分:1)
我会尝试使用outputproperty。也许python文件正在执行 - 没有做你想要的,而是执行并返回你从未见过的结果。我的意思是如果python脚本返回一条错误消息,是不是会将其视为成功执行?
类似的东西:
<exec dir="./" executable="python" outputproperty="outProp" failonerror="true">
<arg line="deploy_cleanup.py ${app.name}" />
</exec>
<echo>${outProp}</echo>
outputproperty:应存储命令输出的属性的名称。除非将错误流重定向到单独的文件或流,否则此属性将包含错误输出。