检查变量的值以在Ant中跳过任务

时间:2013-11-21 11:12:32

标签: ant build

我的构建文件中有以下target

<target name="copyLibrary">
    <copy toDir="${workingDir}/${location}" includeEmptyDirs="false">
        <fileset dir="${librariesRoot}/${libraryDir}" includes="*"/>
    </copy>
</target>

我想要做的是检查${libraryDir}的值,如果它是特定目录,请不要执行复制。

我尝试更改fileset以使用嵌套的includeexclude标记,但它不喜欢这样。我还尝试向目标添加unless属性并进行复制,但这些属性是不允许的。我目前正在处理目标上的if属性,以了解我的位置。我有一种感觉,我可能需要从fileset更改为类似dirset的内容。

1 个答案:

答案 0 :(得分:2)

<fileset>可以嵌套<include><exclude>元素。这些<include><exclude>元素可以包含ifunless属性。

在您的情况下,<include> unless可能会有效:

<condition property="libraryDir-is-scorned">
    <equals arg1="${libraryDir}" arg2="unlovedLibrary"/>
</condition>

<copy toDir="${workingDir}/${location}" includeEmptyDirs="false">
    <fileset dir="${librariesRoot}/${libraryDir}">
        <include name="*" unless="libraryDir-is-scorned"/>
    </fileset>
</copy>