`

Ant Datatype之patternset

    博客分类:
  • Ant
 
阅读更多

        一个文件集可以包含多个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的主要特性提供乐观用Ant来管理工程的一些最佳实践...patternset DataType filtersetDataType path DataType mapperDataType 第五章 用户编写任务 。。。。。。

    ant.jar下载

    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....

    jackson-datatype-jsr310-2.13.1-API文档-中文版.zip

    赠送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-...

    jackson-datatype-jsr310-2.12.5-API文档-中文版.zip

    赠送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-...

    jackson-datatype-jdk8-2.13.1-API文档-中英对照版.zip

    赠送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-...

    jackson-datatype-jsr310-2.11.4-API文档-中英对照版.zip

    赠送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-...

    jackson-datatype-jsr310-2.9.7-API文档-中英对照版.zip

    赠送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.5-API文档-中英对照版.zip

    赠送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权威指南(PDF电子书)

    第四章主要讲述Ant的数据类型,包括已定义的DataType、XML属性约定等,并详细介绍了各种数据类型的使用方法和应用。第五章讲述了用户如何编写自定义任务,从任务模型、任务生命周期,到通过实际的jar任务示例来分析...

    jackson-datatype-jsr310-2.10.4-API文档-中文版.zip

    赠送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-...

    jackson-datatype-jsr310-2.11.4-API文档-中文版.zip

    赠送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-...

    jackson-datatype-jsr310-2.9.7-API文档-中文版.zip

    赠送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

    jackson-datatype-jsr310-2.9.8.jar

    jackson-datatype-joda-2.12.2-API文档-中文版.zip

    赠送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-...

    jackson-datatype-jsr310-2.13.1-API文档-中英对照版.zip

    赠送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-...

    jackson-datatype-jdk8-2.12.5-API文档-中文版.zip

    赠送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-...

    jackson-datatype-jsr310-2.9.6-API文档-中英对照版.zip

    赠送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-...

    jackson-datatype-jdk8-2.9.7-API文档-中英对照版.zip

    赠送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...

Global site tag (gtag.js) - Google Analytics