0

我可以看到,“如果”任务可以在“目标”根目录或任何需要执行某些操作的地方使用。但是当我指定一些参数时我可以使用它吗?例如有 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>
4

1 回答 1

1

好的,你从哪里得到你的<if>任务?

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

但是,可以在语句中定义资源<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>

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

于 2013-02-05T15:24:21.437 回答