<?xml version="1.0"?>
<project name="access" default="show" basedir=".">
<!--
将一组需要过滤的值写入一个过滤文件,过滤文件的
格式与一般的属性文件相同,如下:
month=12
year=2008
-->
<filter filtersfile="filter.properties"/>
<!--
定义一个过滤器
-->
<filter token="time" value="14时7分"/>
<target name="show">
<mkdir dir="dest"/>
<!-- 在copy中添加filtering属性启动过滤器 -->
<copy todir="dest" filtering="true">
<fileset dir="src"/>
</copy>
</target>
</project>
该过滤器的作用就是将src下面的文件复制到dest目录下面.而且将src下面,凡是包含@year@,@month@,@time@的字符进行替换(是指src文件夹下面文件中的内容,不是指文件名)。另外还可以使用filterset标签,它也可以引用外部filter文件,也可以在内容指定一组filter,如下:
与单纯地使用filter相比,filterset的功能要强大一点,使用得被替换的字符不仅限制于以@开始和结束的变量了,你可以自己定义(使用begintoken和endtoken)。
<
copy
file
="${build.dir}/version.txt"
toFile
="${dist.dir}/version.txt"
>
< filterset >
< filter token ="DATE" value ="${TODAY}" />
</ filterset >
</ copy >
<!-- 自定义变量的格式 -->
< copy file ="${build.dir}/version.txt" toFile ="${dist.dir}/version.txt" >
< filterset begintoken ="%" endtoken ="*" >
< filter token ="DATE" value ="${TODAY}" />
</ filterset >
</ copy >
<!-- 使用外部的过滤定义文件 -->
< copy toDir ="${dist.dir}/docs" >
< fileset dir ="${build.dir}/docs" >
< include name ="**/*.html" >
</ fileset >
< filterset begintoken ="%" endtoken ="*" >
< filtersfile file ="${user.dir}/dist.properties" />
</ filterset >
</ copy >
<!-- 使用引用方式,重复利用过滤集 -->
< filterset id ="myFilterSet" begintoken ="%" endtoken ="*" >
< filter token ="DATE" value ="${TODAY}" />
</ filterset >
< copy file ="${build.dir}/version.txt" toFile ="${dist.dir}/version.txt" >
< filterset refid ="myFilterSet" />
</ copy >
< filterset >
< filter token ="DATE" value ="${TODAY}" />
</ filterset >
</ copy >
<!-- 自定义变量的格式 -->
< copy file ="${build.dir}/version.txt" toFile ="${dist.dir}/version.txt" >
< filterset begintoken ="%" endtoken ="*" >
< filter token ="DATE" value ="${TODAY}" />
</ filterset >
</ copy >
<!-- 使用外部的过滤定义文件 -->
< copy toDir ="${dist.dir}/docs" >
< fileset dir ="${build.dir}/docs" >
< include name ="**/*.html" >
</ fileset >
< filterset begintoken ="%" endtoken ="*" >
< filtersfile file ="${user.dir}/dist.properties" />
</ filterset >
</ copy >
<!-- 使用引用方式,重复利用过滤集 -->
< filterset id ="myFilterSet" begintoken ="%" endtoken ="*" >
< filter token ="DATE" value ="${TODAY}" />
</ filterset >
< copy file ="${build.dir}/version.txt" toFile ="${dist.dir}/version.txt" >
< filterset refid ="myFilterSet" />
</ copy >