2

実行する .bat ファイルにいくつかの ant タスクがあります。
私の .bat ファイルは以下のようなものです:

call ant -buildfile task.xml target1
call ant -buildfile task.xml target2

Ant タスクごとに Java プログラムが実行され、プログラムはSystem.exit()を使用して終了コードを返します。

ant 構成でresultpropertyを使用して終了コードを受け取ることができることはわかっています。
Ant タスクの呼び出しから .bat ファイルの終了コードを取得するにはどうすればよいですか?

4

1 に答える 1

6

次のようなことを試すことができます:

1) ant task.xml で: resultproperty が 0 でない場合は失敗させます。これを行うには、fail タスクを次のように使用できます。

  • resultProperty が 0 でないという条件
  • Java プログラムから返されたステータス コードと等しいステータス コード

サンプルコードは次のとおりです。

<exec executable="cmd" resultproperty="javaReturnCode" ...>
    ...
</exec>

<fail message="java program execution failure" status="${javaReturnCode}">
   <condition>
      <not>
        <equals arg1="${javaReturnCode}" arg2="0"/>
      </not>
   </condition>
</fail>

2) バッチ ファイル内: %errorlevel% には最後のコマンドのリターン コードが含まれているため、次のようなものが機能します。

call ant -buildfile task.xml target1
IF NOT ERRORLEVEL 0 GOTO javaProgramErrorHandlingTarget1
call ant -buildfile task.xml target2
IF NOT ERRORLEVEL 0 GOTO javaProgramErrorHandlingTarget2
REM both ant targets exit normally so continue normal job
...
:javaProgramErrorHandlingTarget1
...
:javaProgramErrorHandlingTarget2
...
于 2013-06-13T11:08:37.783 に答える