首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可执行文件失败时的Ant条件失败

可执行文件失败时的Ant条件失败
EN

Stack Overflow用户
提问于 2011-10-18 05:27:01
回答 3查看 11.3K关注 0票数 9

我有以下的ant目标:

代码语言:javascript
复制
<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不存在等),构建将被视为成功。如何在此可执行文件成功的基础上建立有条件的构建成功?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-18 06:02:51

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

票数 16
EN

Stack Overflow用户

发布于 2011-10-18 05:39:58

我假设这是一个ant脚本,而不是xsl目标。

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

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

因此,如果您的执行由于任何原因而失败,您的构建也将失败。默认情况下,这是真的。您还可以使用以下属性检查可执行文件的返回码:

代码语言:javascript
复制
failonerror

代码语言:javascript
复制
resultproperty

例如:

代码语言:javascript
复制
<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>
票数 9
EN

Stack Overflow用户

发布于 2017-02-25 01:55:42

要立即失败,请使用failonerror属性:

代码语言:javascript
复制
<exec dir="${basedir}" executable="sh" failonerror="true">
    <arg line="-c 'myscript'" />
</exec>

若要在失败前执行其他操作,请将退出代码存储在before属性属性中。通常,0表示成功,1 or higher indicates an error表示成功

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7799778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档