ClassFileSet は「ルート」クラスのセットを与えられた場合、ルートクラスが依存するすべてのクラスファイルをインクルードする、特殊なタイプの FileSet です。通常は特定のアプリケーションに必要なすべてのクラスを格納する JAR を作成するために使用されます。
ClassFileSet は通常参照によって使用します。それらは id 値で宣言され、それは通常の FileSet が予期される参照として使用されます。
このタイプには、BCEL
ライブラリ が必要です。
Class FileSet は、標準 FileSet でサポートされている属性に加えて、次の属性をサポートしています。
属性 | 説明 | 必須 |
---|---|---|
rootclass | 単一のルートクラス名 | 否 |
ルートクラスが複数必要な場合は、複数のネストされた <root>
要素を使用できます。
属性 | 説明 | 必須 |
---|---|---|
classname | ルートクラスの完全修飾名 | はい |
ルート 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>
この例では、org.apache.tools.ant.Project
クラスが依存するすべてのクラスファイルを含む FileSet を作成します。この 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 を構築します。