我的 .bat 文件中有几个 ant 任务要执行。
我的.bat文件如下:
调用 ant -buildfile task.xml target1
调用 ant -buildfile task.xml target2
对于每个 ant 任务,它将执行一个 java 程序,该程序将使用 System.exit() 返回退出代码。
我知道退出代码可以通过在ant配置中使用resultproperty来接收。
如何通过调用 ant 任务获取 .bat 文件中的退出代码?
你可以尝试这样的事情:
1) 在你的 ant task.xml 中:如果 resultproperty 不为 0,则使其失败。为此,你可以使用 fail task 和
这是示例代码:
<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
...
您可以使用
java或 exec 任务的
failonerror
属性。例如:
<java
classpath="..."
classname="..."
failonerror="true"
>
...
</java>
这将导致 ant 终止,退出值与从 Java 应用程序传递给 System.exit() 的值相同。
然后可以使用
ERRORLEVEL
在批处理脚本中处理该值。例如:
call ant -buildfile task.xml target1
IF NOT ERRORLEVEL 0 GOTO ...
call ant -buildfile task.xml target2
IF NOT ERRORLEVEL 0 GOTO ...