Ant else条件执行

时间:2016-09-07 05:53:37

标签: java ant ant-contrib

我正在尝试在Ant中打印一些消息,具体取决于以下条件:

<if>
    <equals arg1="${docs.present}" arg2="true"/>
    <then>
    </then>
    <else>
        <echo message="No docss found!"/>
    </else>
</if>

但是如您所见,如果docs.present属性设置为'true',那么我只想执行其他部分。如果是部分,则无需执行任何操作。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

您可以在echo条件中使用if,而不是如下:

<if>
    <equals arg1="${docs.present}" arg2="false"/>
    <then>
          <echo message="No docss found!"/>
    </then>
</if>

答案 1 :(得分:0)

下面是写蚂蚁的典型例子,如果是其他条件,那么

<if>
    <equals arg1="${condition}" arg2="true"/>
    <then>
        <copy file="${some.dir}/file" todir="${another.dir}"/>
    </then>
    <elseif>
        <equals arg1="${condition}" arg2="false"/>
        <then>
            <copy file="${some.dir}/differentFile" todir="${another.dir}"/>
        </then>
    </elseif>
    <else>
        <echo message="Condition was neither true nor false"/>
    </else>
</if>

在您的情况下,您可以在then标记内执行任务,如果您没有在那里执行任务,请删除else标记。

<if>
    <equals arg1="${docs.present}" arg2="false"/>
    <then>
        <echo message="No docss found!"/>
    </then>
</if>

答案 2 :(得分:0)

本机Ant解决方案是使用条件任务执行:

<project name="demo" default="run">

   <available file="mydoc.txt" property="doc.present"/>

   <target name="run" unless="doc.present">
     <echo message="No docs found"/>
   </target>

</project>

“if”任务不是标准Ant的一部分。