Classfileset 是一種特殊類型的檔案集,給定一組「根」類別後,它將包含根類別所依賴的所有類別檔案。這通常用於為特定應用程式建立一個包含所有必要類別的 jar 檔。
classfilesets 通常透過參照使用。它們會使用 id 值宣告,然後在預期為一般檔案集的地方使用此值作為參照。
此類型需要 BCEL
函式庫。
除了 標準檔案集 支援的屬性外,類別檔案集還支援下列屬性
屬性 | 說明 | 必要 |
---|---|---|
rootclass | 單一根類別名稱 | 否 |
當需要多個根類別時,可以使用多個巢狀 <root>
元素
屬性 | 說明 | 必要 |
---|---|---|
classname | 根類別的完整限定名稱 | 是 |
根檔案集用於從檔案集中新增一組根類別。在此情況下,檔案集中的項目預期為 Java 類別檔案。Java 類別的名稱由檔案集中類別檔案的相對位置決定。因此,檔案 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>
此範例建立一個檔案集,其中包含 org.apache.tools.ant.Project
類別所依賴的所有類別檔案。然後可以使用此檔案集建立一個 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。