选择器可以被合并到选择容器内,从而可以进行分组和某些逻辑表达。
区分选择器容器与选择器:
选择器容器有:<and>, <or>, <not>, <none>, <selector>和<majority>。容器可以嵌套使用,用以表达复杂的选择逻辑。
选择器有:
选择器 | 描述 |
<filename> | 基于模式匹配文件,工作方式类似于模式集的<include>或<exclude>元素 |
<depth> | 基于目录深度选择文件 |
<size> | 按照小于,等于,大于某指定值来选择文件 |
<date> | 根据最终修改时间早于,晚于或等于某一指定时间来选择文件(或目录) |
<present> | 选择存在于某个目录树中的文件 |
<depend> | 选择比在其他目录树中选择指定文件更新的版本 |
<contains> | 选择包含指定字符串的文件 |
<containsregexp> | 选择包含与指定正则表达式匹配的字符串的文件 |
<different> | 选择某一目录不包含的文件 |
<type> | 根据文件或目录的类型进行选择 |
<modified> | 计算文件的checksum,选择检查和发生变化的文件 |
<signedselector> | 选择已签名的JAR文件,可选择包括签名者姓名 |
<scriptselector> | 嵌入一段脚本语言来描述选择规则 |
这些选择器可以限制文件集只选择匹配于特定测试的文件。
eg:从web中选择不存在于currentfiles中的文件复制到newweb文件中
<target name="copy" depends="compile" description="copy test"> <copy todir="newweb" includeemptydirs="false"> <fileset dir="web"> <not> <present targetdir="currentfiles" /> </not> </fileset> </copy> </target>