2011-10-17 77 views
6

我有以下Ant目标:蚂蚁条件失效

<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犯规存在,等等)的版本将解决成功。如何在此可执行文件成功后建立条件构建成功?

回答

11

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

7

我想这是一个蚂蚁脚本,而不是一个xsl目标。

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

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

所以,如果你执行任何原因而失败的构建也将失败。这是默认的。

failonerror 

resultproperty 

例如:您还可以通过使用属性检查可执行文件的返回码

<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> 
+0

谢谢你的提示,“failonerror =‘真正的’“是”就是我一直在寻找 –

+3

可以简化与失败条件:'' – nikolay

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> 
+0

这也允许您添加一条消息,指出为什么构建失败,在'fail'任务上使用'message'参数。 (请参阅https://ant.apache.org/manual/Tasks/fail.html) –