ClassFileSet

Classfileset 是一种专门的 fileset 类型,它给定一组“根”类,将包含所有这些根类所依赖的类文件。这通常用于创建包含特定应用程序所需所有类的 jar 文件。

classfileset 通常通过引用使用。它们用 id 值声明,然后在需要普通 fileset 的地方用作引用。

此类型需要 BCEL

属性

除了 标准 fileset 支持的属性外,class fileset 还支持以下属性

属性 描述 必需
rootclass 单个根类名

嵌套元素

当需要多个根类时,可以使用多个嵌套的 <root> 元素

属性 描述 必需
classname 根类的完全限定名

RootFileSet

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。