如果exec任务失败,如何使ant脚本失败

ras*_*hok 7 ant scripting exit

我正在Windows中执行ant脚本.考虑到这一点,我正在执行如下任务中的dir命令exec

<target name="dummy">
  <exec executable="cmd" failonerror="true">
    <arg line="/C DIRR"/>
  </exec>
  <exec executable="cmd" failonerror="true">
    <arg line="/C cd /d c:\temp"/>
  </exec>
</target>
Run Code Online (Sandbox Code Playgroud)

在这里我给出了DIRR代替DIR,这个执行将失败.但是蚂蚁构建并没有失败.它显示错误消息,dirr is not recognised as internal or external command并且下一个命令cd /d c:\temp也被执行.我希望一旦出现错误消息就必须停止执行ant脚本.

我希望这个脚本必须停止执行,如果任何一个exec命令发生错误.failonerror也没有帮助.如果exec失败,如何使ant构建失败.

注意:我使用的是ant 1.8.2

A.H*_*.H. 2

请注意,这里有两个执行级别:

  • 蚂蚁叫cmd.exe
  • cmd.exe执行DIRSS.

您会看到,如果第二步失败,这并不一定意味着会将cmd.exe错误传播回 Ant。cmd.exe如果人们在心理上用诸如“无辜”之类的东西代替众所周知的东西,这一点可能会更加明显foo.exe

因此,下一步是探索为什么第二步在您的计算机上的行为与在问题评论者的计算机上的行为不同。解决了这个谜题之后,你就可以回到蚂蚁问题了。

第一步可能是这样的:打开一个新的 shell 窗口并尝试

> cmd /c dir
> echo %ERRORLEVEL%

> cmd /c dir nonexisting-directory
> echo %ERRORLEVEL%

> cmd /c dirr
> echo %ERRORLEVEL%
Run Code Online (Sandbox Code Playgroud)

另请告诉我们您的操作系统版本。