如果exec任务失败,如何使ant脚本失败
我正在windows中执行ant脚本。在这一点上,我在<代码> > Exc> <代码>任务中执行<代码> dir < /代码>命令如下< /p>如果exec任务失败,如何使ant脚本失败,ant,scripting,exit,Ant,Scripting,Exit,我正在windows中执行ant脚本。在这一点上,我在 > Exc> 任务中执行 dir < /代码>命令如下< /p> <target name="dummy"> <exec executable="cmd" failonerror="true"> <arg line="/C DIRR"/> </exec> <exec executable="cmd" failonerror="true"> <arg
<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>
这里我给出的是DIRR
而不是DIR
,此执行将失败。但是ant构建并没有失败。将错误消息显示为dirr不会被识别为内部或外部命令
,下一个命令cd/d c:\temp
也已执行。我希望一旦出现错误消息,ant脚本的执行必须停止
我想知道,如果exec命令中的任何一个出现错误,该脚本必须停止执行<代码>故障诊断错误也没有帮助。如果exec失败,如何使ant构建失败
注意:我使用的是ant 1.8.2,请注意,这里有两个执行级别:
- Ant调用cmd.exe
执行cmd.exe
DIRSS
cmd.exe
会将错误传播回Ant。如果用户在头脑中用像foo.exe
这样的“无辜的”东西替换众所周知的cmd.exe
,这一点可能会更加明显
因此,下一步是探索,为什么第二步在你的机器上的行为不同于在你问题的评论员的机器上的行为。谜语解开后,你可以回到蚂蚁的问题上来
第一步可能是:打开一个新的shell窗口,然后再试一次
> cmd /c dir
> echo %ERRORLEVEL%
> cmd /c dir nonexisting-directory
> echo %ERRORLEVEL%
> cmd /c dirr
> echo %ERRORLEVEL%
另外请告诉我们您的操作系统版本。
build:[exec]“DIRR”不被识别为内部或外部命令、[exec]可操作程序或批处理文件。生成失败
在我的电脑上运行正常。我不确定你得到了什么。你能提供完整的生成文件吗?我运行了您的示例,它在我的pc上运行良好。ant 1.8。2@FailedDev修改了我的问题。它仍然像预期的那样工作,也就是说,它在第一个错误时失败,脚本就停在那里。@rajaashok该示例也适用于我,正如您所希望的那样-它在第一次调用后停止。Ant版本:1.8.2。您可以修复您的帖子中的打印错误:。我从未见过这样的错误。我的意思是,它应该在所有或无windows计算机上失败,除非正在执行某些魔法。@FailedDev:最后,“魔法部分”变成路径中的某个dirr.exe
:)如果这是原因,我会旋转+1。:)我会密切留意这个问题。我正在使用像蚂蚁一样的坚果,但还没有看到这样的错误!