2

我的 .bat 文件中有几个 ant 任务要执行。
我的 .bat 文件如下所示:

调用 ant -buildfile task.xml target1
调用 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 回答