一个文件集可以包含多个patternset(模式集),它限制了文件集中的文件,要求他们是否与指定的模式相匹配。
模式匹配规则如下:
*:匹配零个或多个字符
?:匹配一个单独的字符
**:匹配一个目录名,匹配从当前节点向下的所有目录,可以匹配零个或多个目录
以 /或\结尾意味着结尾是**。代表包含了所有子目录的目录。
根据不同平台目录分隔符会被转化为正确的形式。
其他的所有字符都被当作简单的文本处理。
模式集属性:
includes(嵌套模式为include):包含的文件模式列表,逗号分隔,被省略时包含所有文件。
excludes(嵌套模式为exclude):排除的文件模式列表,逗号分隔,被省略时不排除任何文件。
includesfile:文件名称;文件中的每一行被作为一个包含模式来处理,可以使用嵌套的includesfile元素来指定多个所包含的文件。
excludesfile:文件名称;文件中的每一行被作为一个排除模式来处理,可以使用嵌套的 excludesfile元素来指定多个所包含的文件。
排除模式会被优先处理。
一些文件类型在默认情况下会被排除,它们被称为默认排除模式。
**/*~:用于jEdit和其他编译器,用作老版本的备份
**/#*#,**/.#*,**/%*%:编译器
**/CVS/,**/.cvsignore,**/SCCS/,**/vssver.scc,**/._*(MacOS/X源代码派生文件),**/.svn,**/.DS_Store
defaultexcludes="no"可以关闭自动排除。在需要的情况下,你可以用<defaultexcludes>任务修改defaultexcludes文件集的内容。<defaultexcludes echo="true" default="true"/>。echo打印当前模式列表。default重置模式集合的设置。
测试:
测试目录为:src\xuj\ant,目录下包含Main.java和Main.java.bak两个文件。
1.测试1:
<?xml version="1.0" encoding="UTF-8"?> <project name="datatype_fileset" default="copy"> <property name="copy.fromdir" location="src"/> <property name="copy.todir" location="tosrc"/> <target name="copy" depends="clean"> <copy todir="${copy.todir}"> <fileset dir="${copy.fromdir}"> <include name="*.java"/> </fileset> </copy> </target> <target name="clean"> <delete dir="${copy.todir}"/> </target> </project>
输出:说明没有文件被复制。
E:\antspace\datatype>ant Buildfile: E:\antspace\datatype\build.xml clean: copy: BUILD SUCCESSFUL Total time: 0 seconds
2.测试2
<?xml version="1.0" encoding="UTF-8"?> <project name="datatype_fileset" default="copy"> <property name="copy.fromdir" location="src"/> <property name="copy.todir" location="tosrc"/> <target name="copy" depends="clean"> <copy todir="${copy.todir}"> <fileset dir="${copy.fromdir}"> <include name="**/*.java"/> </fileset> </copy> </target> <target name="clean"> <delete dir="${copy.todir}"/> </target> </project>
或
<?xml version="1.0" encoding="UTF-8"?> <project name="datatype_fileset" default="copy"> <property name="copy.fromdir" location="src"/> <property name="copy.todir" location="tosrc"/> <target name="copy" depends="clean"> <copy todir="${copy.todir}"> <fileset dir="${copy.fromdir}"> <patternset> <include name="**/*.java"/> </patternset> </fileset> </copy> </target> <target name="clean"> <delete dir="${copy.todir}"/> </target> </project>
输出:说明复制了一个文件,即Main.java
E:\antspace\datatype>ant Buildfile: E:\antspace\datatype\build.xml clean: copy: [copy] Copying 1 file to E:\antspace\datatype\tosrc BUILD SUCCESSFUL Total time: 0 seconds
3.测试3:
<?xml version="1.0" encoding="UTF-8"?> <project name="datatype_fileset" default="copy"> <property name="copy.fromdir" location="src"/> <property name="copy.todir" location="tosrc"/> <target name="copy" depends="clean"> <copy todir="${copy.todir}"> <fileset dir="${copy.fromdir}"> <patternset> <exclude name="**/*.java"/> <include name="**/*.bak"/> </patternset> </fileset> </copy> </target> <target name="clean"> <delete dir="${copy.todir}"/> </target> </project>
或
<?xml version="1.0" encoding="UTF-8"?> <project name="datatype_fileset" default="copy"> <property name="copy.fromdir" location="src"/> <property name="copy.todir" location="tosrc"/> <target name="copy" depends="clean"> <copy todir="${copy.todir}"> <fileset dir="${copy.fromdir}"> <exclude name="**/*.java"/> <include name="**/*.bak"/> </fileset> </copy> </target> <target name="clean"> <delete dir="${copy.todir}"/> </target> </project>
输出:
E:\antspace\datatype>ant Buildfile: E:\antspace\datatype\build.xml clean: [delete] Deleting directory E:\antspace\datatype\tosrc copy: [copy] Copying 1 file to E:\antspace\datatype\tosrc BUILD SUCCESSFUL Total time: 0 seconds
4.测试4,测试目录增加test.java和a.txt两个文件
includes.txt文件的内容:
**/*.java **/*.txt
build.xml文件:
<?xml version="1.0" encoding="UTF-8"?> <project name="datatype_fileset" default="copy"> <property name="copy.fromdir" location="src"/> <property name="copy.todir" location="tosrc"/> <target name="copy" depends="clean"> <copy todir="${copy.todir}"> <fileset dir="${copy.fromdir}"> <includesfile name="includes.txt"/> </fileset> </copy> </target> <target name="clean"> <delete dir="${copy.todir}"/> </target> </project>
输出:
E:\antspace\datatype>ant Buildfile: E:\antspace\datatype\build.xml clean: [delete] Deleting directory E:\antspace\datatype\tosrc copy: [copy] Copying 3 files to E:\antspace\datatype\tosrc BUILD SUCCESSFUL Total time: 0 seconds
可以这样写:
<?xml version="1.0" encoding="UTF-8"?> <project name="datatype_fileset" default="copy"> <property name="copy.fromdir" location="src"/> <property name="copy.todir" location="tosrc"/> <fileset id="copy.pattern" dir="${copy.fromdir}"> <include name="**/*.txt"/> <include name="**/*.java"/> </fileset> <target name="copy" depends="clean"> <copy todir="${copy.todir}"> <fileset refid="copy.pattern" /> </copy> </target> <target name="clean"> <delete dir="${copy.todir}"/> </target> </project>
defaultexcludes未测试成功。
相关推荐
《Ant权威指南》提供了Ant核心任务的详细定义;讨论了Ant的主要特性提供乐观用Ant来管理工程的一些最佳实践...patternset DataType filtersetDataType path DataType mapperDataType 第五章 用户编写任务 。。。。。。
org.apache.tools.ant.types.DataType org.apache.tools.ant.types.FileList org.apache.tools.ant.types.LogLevel org.apache.tools.ant.types.Resource org.apache.tools.ant.util.DateUtils org.apache....
赠送jar包:jackson-datatype-jsr310-2.13.1.jar; 赠送原API文档:jackson-datatype-jsr310-2.13.1-javadoc.jar; 赠送源代码:jackson-datatype-jsr310-2.13.1-sources.jar; 赠送Maven依赖信息文件:jackson-...
赠送jar包:jackson-datatype-jsr310-2.12.5.jar; 赠送原API文档:jackson-datatype-jsr310-2.12.5-javadoc.jar; 赠送源代码:jackson-datatype-jsr310-2.12.5-sources.jar; 赠送Maven依赖信息文件:jackson-...
赠送jar包:jackson-datatype-jdk8-2.13.1.jar; 赠送原API文档:jackson-datatype-jdk8-2.13.1-javadoc.jar; 赠送源代码:jackson-datatype-jdk8-2.13.1-sources.jar; 赠送Maven依赖信息文件:jackson-datatype-...
赠送jar包:jackson-datatype-jsr310-2.11.4.jar; 赠送原API文档:jackson-datatype-jsr310-2.11.4-javadoc.jar; 赠送源代码:jackson-datatype-jsr310-2.11.4-sources.jar; 赠送Maven依赖信息文件:jackson-...
赠送jar包:jackson-datatype-jsr310-2.9.7.jar; 赠送原API文档:jackson-datatype-jsr310-2.9.7-javadoc.jar; 赠送源代码:jackson-datatype-jsr310-2.9.7-sources.jar; 赠送Maven依赖信息文件:jackson-...
赠送jar包:jackson-datatype-jsr310-2.9.5.jar; 赠送原API文档:jackson-datatype-jsr310-2.9.5-javadoc.jar; 赠送源代码:jackson-datatype-jsr310-2.9.5-sources.jar; 赠送Maven依赖信息文件:jackson-...
第四章主要讲述Ant的数据类型,包括已定义的DataType、XML属性约定等,并详细介绍了各种数据类型的使用方法和应用。第五章讲述了用户如何编写自定义任务,从任务模型、任务生命周期,到通过实际的jar任务示例来分析...
赠送jar包:jackson-datatype-jsr310-2.10.4.jar; 赠送原API文档:jackson-datatype-jsr310-2.10.4-javadoc.jar; 赠送源代码:jackson-datatype-jsr310-2.10.4-sources.jar; 赠送Maven依赖信息文件:jackson-...
赠送jar包:jackson-datatype-jsr310-2.11.4.jar; 赠送原API文档:jackson-datatype-jsr310-2.11.4-javadoc.jar; 赠送源代码:jackson-datatype-jsr310-2.11.4-sources.jar; 赠送Maven依赖信息文件:jackson-...
赠送jar包:jackson-datatype-jsr310-2.9.7.jar; 赠送原API文档:jackson-datatype-jsr310-2.9.7-javadoc.jar; 赠送源代码:jackson-datatype-jsr310-2.9.7-sources.jar; 赠送Maven依赖信息文件:jackson-...
jackson-datatype-jsr310-2.9.8.jar
赠送jar包:jackson-datatype-joda-2.12.2.jar; 赠送原API文档:jackson-datatype-joda-2.12.2-javadoc.jar; 赠送源代码:jackson-datatype-joda-2.12.2-sources.jar; 赠送Maven依赖信息文件:jackson-datatype-...
赠送jar包:jackson-datatype-jsr310-2.13.1.jar; 赠送原API文档:jackson-datatype-jsr310-2.13.1-javadoc.jar; 赠送源代码:jackson-datatype-jsr310-2.13.1-sources.jar; 赠送Maven依赖信息文件:jackson-...
赠送jar包:jackson-datatype-jdk8-2.12.5.jar; 赠送原API文档:jackson-datatype-jdk8-2.12.5-javadoc.jar; 赠送源代码:jackson-datatype-jdk8-2.12.5-sources.jar; 赠送Maven依赖信息文件:jackson-datatype-...
赠送jar包:jackson-datatype-jsr310-2.9.6.jar; 赠送原API文档:jackson-datatype-jsr310-2.9.6-javadoc.jar; 赠送源代码:jackson-datatype-jsr310-2.9.6-sources.jar; 赠送Maven依赖信息文件:jackson-...
赠送jar包:jackson-datatype-jdk8-2.9.7.jar; 赠送原API文档:jackson-datatype-jdk8-2.9.7-javadoc.jar; 赠送源代码:jackson-datatype-jdk8-2.9.7-sources.jar; 赠送Maven依赖信息文件:jackson-datatype-jdk8...