1

最初にいくつかのチェックを行い、コードをコンパイルしてTomcatサーバーにデプロイするantスクリプトがあります。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
4

1 に答える 1

1

出力プロパティを使用してみます。おそらく、python ファイルが実行中です。実行したいことを実行しているのではなく、表示されない結果を実行して返しています。つまり、Python スクリプトがエラー メッセージを返した場合、それは正常に実行されたと見なされませんか?

何かのようなもの:

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

outputproperty: コマンドの出力を格納するプロパティの名前。エラー ストリームが別のファイルまたはストリームにリダイレクトされない限り、このプロパティにはエラー出力が含まれます。

于 2012-10-06T10:42:28.830 に答える