一、概述
ClassFileSet是一种特殊的文件集类型,包含所给定一组“root”类所依赖的所有类文件。通常用于为特定的应用程序创建一个包含所有必需类的jar。classfilesets通常是做为引用来使用,为其声明一个id属性,就可以将其作为一个普通的文件集使用。此类型需要bcel支持。
二、属性
dir:文件集目录树的根目录。
file:指定文件集包含的文件。
defaultexcludes:是否使用默认排除列表,默认为true。
includes:逗号或空格分隔的必须包含的文件模式列表。
includesfile:文件名。指定文件的每一行都会做为一个includes模式。
excludes:逗号或空格分隔的必须排除的文件模式列表。
excludesfile:文件名。指定文件的每一行都会做为一个excludes模式。
casesensitive:处理includes与excludes模式时是否区分大小写,默认为true。
followsymlinks:是否跟踪符号链接,默认为true。
erroronmissingdir:Ant1.7.1起,指定在基本目录不存在时的处理方式。如果为true,会发生构建错误,如果为false,文件集会被忽略。默认为true。
rootclass:一个根类的名字。
当需要多个根类时,可以使用多个内嵌的root元素,还可以使用rootfileset元素。rootfileset可以从文件集中添加一组根类。在这种情况下文件集中的文件预期为java类文件,Java类的名称是由文件集中的类文件的相对位置决定的。例如,文件com/run/ayena/trans/core/Trans对应java类com.run.ayena.trans.core.Trans。
三、简单示例
<project>
<classfileset id="reqdClass" dir="E:\workspace\trans\bin">
<root classname="com.run.ayena.trans.core.Trans"/>
</classfileset>
<classfileset id="reqdClasses" dir="E:\workspace\trans\bin">
<rootfileset dir="E:\workspace\trans\bin" includes="com/run/ayena/trans/core/*.class"/>
</classfileset>
<jar destfile="trans.jar">
<fileset refid="reqdClass"/>
</jar>
</project>