可执行失败时Ant条件失败

JD.*_*JD. 7 ant exec

我有以下蚂蚁目标:

<target name="refactor-ids">
    <echo>Refactor IDs</echo>
    <exec executable="perl" dir="${basedir}">
        <arg value="script.pl" />
        <arg value="input.xml" />

    </exec> 
</target>
Run Code Online (Sandbox Code Playgroud)

如果可执行文件因任何原因失败(script.pl不存在等),则构建将解析为成功.如何在此可执行文件成功后建立条件构建成功?

yon*_*nix 13

只需添加failonerror="true"到exec元素


Fai*_*Dev 8

我觉得这是一个蚂蚁脚本而不是xsl目标.

您可以使用exec任务的属性failifexecutionfails:

http://ant.apache.org/manual/Tasks/exec.html

因此,如果您的执行因任何原因失败,您的构建也将失败.这默认为true.您还可以使用以下属性检查可执行文件的返回代码:

failonerror
Run Code Online (Sandbox Code Playgroud)

resultproperty
Run Code Online (Sandbox Code Playgroud)

例如

<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>
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用以下命令简化故障条件:`<fail> <condition> <isfailure code ="$ {return.code}"/> </ condition> </ fail>` (4认同)