我的构建文件中有以下target
:
<target name="copyLibrary">
<copy toDir="${workingDir}/${location}" includeEmptyDirs="false">
<fileset dir="${librariesRoot}/${libraryDir}" includes="*"/>
</copy>
</target>
我想要做的是检查${libraryDir}
的值,如果它是特定目录,请不要执行复制。
我尝试更改fileset
以使用嵌套的include
和exclude
标记,但它不喜欢这样。我还尝试向目标添加unless
属性并进行复制,但这些属性是不允许的。我目前正在处理目标上的if
属性,以了解我的位置。我有一种感觉,我可能需要从fileset
更改为类似dirset
的内容。
答案 0 :(得分:2)
<fileset>
可以嵌套<include>
和<exclude>
元素。这些<include>
和<exclude>
元素可以包含if
和unless
属性。
在您的情况下,<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>