我有以下蚂蚁目标:
<target name="refactor-ids">
<echo>Refactor IDs</echo>
<exec executable="perl" dir="${basedir}">
<arg value="script.pl" />
<arg value="input.xml" />
</exec>
</target>
如果可执行文件因任何原因失败(script.pl不存在等),则构建将解析为成功。如何在此可执行文件成功后建立条件构建成功?
答案 0 :(得分:13)
只需将failonerror="true"
添加到exec元素
答案 1 :(得分:8)
我觉得这是一个蚂蚁脚本而不是xsl目标。
您可以使用exec任务的属性failifexecutionfails:
http://ant.apache.org/manual/Tasks/exec.html
因此,如果您的执行因任何原因失败,您的构建也将失败。这默认为true。您还可以使用以下属性检查可执行文件的返回代码:
failonerror
和
resultproperty
e.g。
<target name="refactor-ids">
<echo>Refactor IDs</echo>
<exec executable="perl" dir="${basedir}" failonerror="false" resultproperty="return.code">
<arg value="script.pl" />
<arg value="input.xml" />
</exec>
<fail>
<condition>
<equals arg1="-1" arg2="${return.code}"/>
</condition>
</fail>
</target>
答案 2 :(得分:1)
要立即失败,请使用failonerror属性:
<exec dir="${basedir}" executable="sh" failonerror="true">
<arg line="-c 'myscript'" />
</exec>
要在失败前执行其他操作,请将退出代码存储在resultproperty属性中。通常,0表示成功,1 or higher indicates an error:
<exec dir="${basedir}" executable="sh" failonerror="false" resultproperty="exitStatusCode">
<arg line="-c 'myscript'" />
</exec>
<!-- Do some other stuff before failing -->
<fail>
<condition>
<not>
<equals arg1="0" arg2="${exitStatusCode}"/>
</not>
</condition>
</fail>