Antリファレンス

<jar>

SYNOPSIS

<jar
destfile*="ファイル名"
basedir="ディレクトリ名"
compress="true|false"
keepcompression="true|false"
encoding="UTF-8|文字エンコーディング"
filesonly="true|false"
includes="ファイル名リスト|全ファイル"
includesfile="ファイル名"
excludes="ファイル名リスト|全ファイル"
excludesfile="ファイル名"
defaultexcludes="true|false"
manifest="ファイル名"
filesetmanifest="skip|marge|mergewithoutmain"
update="true|false"
whenmanifestonly="create|skip|fail"
duplicate="add|preserve|fail"
index="true|false"
manifestencoding="文字エンコーディング"
roundup="true|false"
level="0|1|2|3|4|5|6|7|8|9"
>
<fileset> * -  JAR ファイルに格納するファイルパターン.
<zipfileset> * -  別の ZIP または JAR ファイルに格納されているファイルをこの JAR ファイルに 取り込む場合に使用します.
<metainf> ? -  内包するファイルセットをメタ情報として JAR の META-INF/ ディレクトリに 格納します.
<manifest>  -  このビルドファイル内で JAR のマニフェストを定義します.
<indexjars>  -  index 属性が true でない場合は無視されます.
<service>  -  サービスプロバイダを定義します.
※Ant は自由度が高いため、このタスクでよく使用される要素のみ説明しています.
</jar>

説 明

JAR ファイルを作成または更新するタスクです。

JAR のマニフェストはファイルとして存在するものを指定するか、このタスク内で 定義することが出来ます。どちらも指定されていない場合はデフォルトの簡単な マニフェストファイルが追加されます。

格納するファイルのパーミッションは JAR には取り込まれません。パーミッションを 指定する場合は <zipfileset>filemode 属性を使用して ください。

(This description is based on Ant 1.7)

属 性

destfile="ファイル名"
required
作成する JAR ファイルの名前。 ディレクトリが存在しない場合は実行は失敗します。
basedir="ディレクトリ名"
optional
JAR ファイルに格納するファイルのディレクトリ。 対象ファイルが複数のディレクトリに分散している場合はこの属性ではなくタグ内で <fileset> を使用します。
compress="true|false"
optional
JAR ファイルを作成する際に圧縮を行うかどうかを指定します。 圧縮は個別のファイルにではなく JAR に格納する全てのファイルに対して行われます。
keepcompression="true|false"
Ant 1.6 以降 optional
既存のアーカイブ (zipfilesets や既存 JAR へなど) に対して、 compression 属性を無視して圧縮状態を維持するかどうかを指定します。
encoding="UTF-8|文字エンコーディング"
optional

アーカイブに格納するファイル名のエンコーディング。省略時は Java 標準の UTF-8 で ファイル名を格納します。

この属性は、作成した JAR ファイルを通常の ZIP ファイルとして unzip コマンド などの ZIP ユーティリティで使用する時に使用します。一般的にこれらのユーティリティは 実行環境用に作成されており、実行環境の文字エンコーディングでしか ZIP 内のファイルを 正しく取り出せません。

この属性は ZIP ファイル内のファイル割り当てテーブルエントリのエンコーディングを指定します。 格納するファイルの内容のエンコーディングを指定するものではありません。

filesonly="true|false"
optional
格納対象をファイルのみとし、ZIP 内にディレクトリを作成しないかを指定します。
includes="ファイル名リスト|全ファイル"
optional
JAR に含むファイル名をコンマまたは空白で区切って指定します。 ワイルドカードを使用することが出来ます。
includesfile="ファイル名"
optional
1行ごとに格納対象のファイル名パターンが記述されたファイル名を指定します。
excludes="ファイル名リスト|全ファイル"
optional
JAR に含まないファイル名をコンマまたは空白で区切って指定します。 ワイルドカードを使用することが出来ます。
excludesfile="ファイル名"
optional
1行ごとに格納対象外のファイル名パターンが記述されたファイル。
defaultexcludes="true|false"
optional
格納対象/除外対象のどちらにも一致しないファイルを除外とするかどうかを指定します。
manifest="ファイル名"
optional

JAR に格納するマニフェストファイル。実際に存在するマニフェストファイル名か、 または格納対象の JAR ファイルを <fileset> で指定しているなら その JAR ファイル名のどちらでも指定できます。格納対象の JAR を指定した場合、 その JAR には META-INF/MANIFEST.MF が格納されている必要があります。

値を省略した場合、jar タスク内に定義された <manifest> に基づいて マニフェストファイルを生成します。<manifest> も省略されている場合は デフォルトのマニフェストが自動生成されます。

filesetmanifest="skip|marge|mergewithoutmain"
optional
マニフェストファイルが zipfileset で見つかったか、または zipgroupfileset ファイルが見つかった時の挙動を指定します。skip, marge, mergewithoutmain のいずれかを指定することが出来ます。
update="true|false"
optional
出力先の JAR ファイルが既に存在する場合、それを更新するか上書きするかを指定します。
whenmanifestonly="create|skip|fail"
optional
格納対象のファイルが無かった場合の挙動を指定します。 fail, skip, create を指定できます。
duplicate="add|preserve|fail"
optional
格納するファイルに重複を検出した場合の挙動を指定します。 add, preserve, fail を指定できます。
index="true|false"
optional
クラスファイルの検索を高速化するためのインデックスファイルを作成します (JDK 1.3 以上の機能)。
manifestencoding="文字エンコーディング"
optional
JAR に追加するマニフェストファイルのエンコーディング。 省略した場合は実行環境デフォルトの文字エンコーディングが使用されます。
roundup="true|false"
optional
JAR に格納するファイルのタイムスタンプ秒が奇数だった場合、偶数とするために繰り上げるか繰り下げるかを指定します (ZIP フォーマットはタイムスタンプを偶数でしか保持できません)。 繰り下げにした場合、タスクを実行した実際の時刻より過去に格納されたかのように見えます。 また繰り上げの場合でも、事前コンパイルされたページよりも新しく見える Web アーカイブ内の JSP と同じような問題を 引き起こす可能性があります。
level="0|1|2|3|4|5|6|7|8|9"
Ant 1.7 以降 optional
ファイルの圧縮レベル。 0 (非圧縮/高速) から 9 (高圧縮/低速) までを指定することが出来ます。

内 容

※Ant は自由度が高いため、このタスクでよく使用される要素のみ説明しています。
JAR ファイルに格納するファイルパターン。いくつかのディレクトリに分散されている クラスファイルから JAR を作成したい場合など、ファイルの指定パターンが複数 ある場合に basedir 属性の代わりに使用します。
別の ZIP または JAR ファイルに格納されているファイルをこの JAR ファイルに 取り込む場合に使用します。
<metainf> ?
内包するファイルセットをメタ情報として JAR の META-INF/ ディレクトリに 格納します。ファイルセットに MANIFEST.MF というファイルが含まれている 場合は警告を出して無視します。
このビルドファイル内で JAR のマニフェストを定義します。<manifest>file および mode 属性は無視されます。
<indexjars>
Ant 1.6.2 以降

index 属性が true でない場合は無視されます。

<service>
Ant 1.7.0 以降
サービスプロバイダを定義します。

使用例

./classes 以下の全てのファイルから myprogram.jar を作成します。
Ant タスク
<jar basedir="./classes" jarfile="myprogram.jar" />
./classes 以下から特定のファイルのみを除外して JAR ファイルを作成します。
Ant タスク
<jar basedir="./classes"
    excludes="**/package.html,**/Thumbs.db,**/*Test.class"
    jarfile="myprogram.jar" />
jar タスク内でマニフェストを定義します。
Ant タスク
<jar basedir="./classes" jarfile="myprogram.jar">
  <manifest>
    <attribute name="Main-Class" value="biz.moyo.lab.Sample"/>
  </manifest>
</jar>
マニフェストファイルを付けた JAR ファイルを作成します。
Ant タスク
<jar basedir="./classes"
    jarfile="myprogram.jar" manifest="./mymanifest.mf" />
複数のディレクトリ内のファイルから JAR ファイルを作成する。
Ant タスク
<jar jarfile="myprogram.jar">
    <fileset dir="./classes" />
    <fileset dir="./build/classes" />
</jar>
CVS 2008/03/10