Classfileset 是一种专门的 fileset 类型,它给定一组“根”类,将包含所有这些根类所依赖的类文件。这通常用于创建包含特定应用程序所需所有类的 jar 文件。
classfileset 通常通过引用使用。它们用 id 值声明,然后在需要普通 fileset 的地方用作引用。
此类型需要 BCEL
库。
除了 标准 fileset 支持的属性外,class fileset 还支持以下属性
属性 | 描述 | 必需 |
---|---|---|
rootclass | 单个根类名 | 否 |
当需要多个根类时,可以使用多个嵌套的 <root>
元素
属性 | 描述 | 必需 |
---|---|---|
classname | 根类的完全限定名 | 是 |
Root fileset 用于从 fileset 添加一组根类。在这种情况下,fileset 中的条目应为 Java 类文件。Java 类的名称由类文件在 fileset 中的相对位置确定。因此,文件 org/apache/tools/ant/Project.class
对应于 Java 类 org.apache.tools.ant.Project
。
<classfileset id="reqdClasses" dir="${classes.dir}"> <root classname="org.apache.tools.ant.Project"/> </classfileset>
此示例创建一个 fileset,其中包含 org.apache.tools.ant.Project
类所依赖的所有类文件。然后可以使用此 fileset 创建 jar 文件。
<jar destfile="minimal.jar"> <fileset refid="reqdClasses"/> </jar>
<classfileset id="reqdClasses" dir="${classes.dir}"> <rootfileset dir="${classes.dir}" includes="org/apache/tools/ant/Project*.class"/> </classfileset>
此示例使用 org.apache.tools.ant
包中所有以 Project
开头的类来构建 classfileset。