哪里可以插入“if”任务?

时间:2013-02-05 14:23:36

标签: ant if-statement task ant-contrib

我可以看到,“if”任务可以在“目标”根目录中使用,也可以在任何需要某些操作的地方使用。但是当我指定一些参数时,我可以使用它吗? 例如,有一个ant-javafx任务fx:deploy,我们可以在其中声明类路径:

<fx:deploy ...>
    <fx:resources>
        <fx:fileset dir="..." ...>
        <fx:fileset dir="..." ...>
    </fx:resources>
</fx:deploy>

问题是我可以在该用例中使用“if”吗?例如:

<fx:deploy ...>
    <fx:resources>
        <if>
          <available file="${lib.dir}" type="dir" />
          <then><fx:fileset dir="${lib.dir}" ...></then>
        </if>
        <fx:fileset dir="..." ...>
    </fx:resources>
</fx:deploy>

1 个答案:

答案 0 :(得分:1)

好的,你在哪里获得<if>任务?

这些来自Ant-Contrib吗?如果是这样,这些是任务,而不是可以在任务中使用的子实体。

但是, MIGHT 可以在<if>语句中定义资源:

<if>
   <avaliable file="${lib.dir}" type="dir"/>
   <then>
       <fileset dir="${lib.dir}" id="lib.fileset">
           <includes name="..."/>
       </fileset>
    </then>
    <else>
        <fileset dir="${foo.dir}" id="lib.fileset">
            <include name="..."/>
        </fileset>
    </else>
</fi>

现在,您将拥有一个id为lib.fileset的文件集,该文件集可能是两个不同定义之一。然后,您可以将其用作子实体的一部分:

<jar destfile="${jar.name}">
    <fileset refid="lib.dir"/>
</jar>

我说 MIGHT 因为我从未尝试过这个,但我真的不明白为什么它不会。我从未使用过JavaFX任务,所以我不想给出一个例子,但文档确实说<fx:resources>可以使用引用ID。