Javaのアーカイブ(jar)ファイルを作成するコアタスク。
(org.apache.tools.ant.taskdefs.Jar extends Zip)
属性 | 説明 | 更新日 |
---|---|---|
basedir | アーカイブするディレクトリのトップ | |
jarfile | 生成するjarファイルの名前 | |
duplicate | 生成したいjarファイルが既に存在していて、その中にファイルが存在している場合の動作 のはずなのだが、(Eclipse3.2のantでは)何を指定してもデフォルト動作(add)、すなわち追加(上書き)されるのみ。 いずれにしてもjarファイル内のファイルの削除も行われないので、常にjarファイル自体をdeleteするか、updateをfalseにして作り直す方が安心。 |
2007-11-17 |
update | jarファイルが既に存在している場合に、そのjarファイルを更新する(true)か、新しく作り直す(false)か | 2008-06-21 |
ディレクトリ構造が以下のようになっていることを仮定(要するにeclipseで普通に作った構造)。
C:\workspace3\eval> tree フォルダ パスの一覧 C:. ├─bin ├─classes │ └─jp │ └─hishidama │ └─eval └─src └─jp └─hishidama └─eval
build.xmlはbinの下にあり、classes配下をjarファイル化する。
生成するjarファイルは、build.xmlと同じbinの下に作るものとする。
build.xml:
<?xml version="1.0" encoding="Shift_JIS"?> <project name="eval_jar" default="jar" basedir="." > <target name="jar"> <jar basedir="../classes" jarfile="eval.jar" /> </target> </project>
複数のclassディレクトリから1つのjarファイルを作りたい場合は、以下のように指定する。[2007-01-05]
<target name="jar"> <jar jarfile="eval.jar"> <fileset dir="../classes" /> <fileset dir="../../tools/classes" /> </jar> </target>
ソースを含めるなら、同様に以下のような感じ。[2007-02-19]
<target name="jar"> <jar jarfile="eval.jar"> <fileset dir="../classes" includes="**/*.class" /> <fileset dir="../src" includes="**/*.java" /> <manifest>〜</manifest> </jar> </target>
マニフェストを指定するには、以下のようにする。[2007-01-09]
build.xml:(実行可能jarファイルを作る例)
<?xml version="1.0" encoding="Shift_JIS"?> <project name="make_exec_jar" default="jar" basedir="." > <target name="jar"> <jar basedir="../classes" jarfile="hello.jar"> <manifest> <attribute name="Main-Class" value="jp.hishidama.sample.Hello"/> </manifest> </jar> </target> </project>
マニフェストファイルを指定したい場合は、以下のようにする。
<jar basedir="../classes" jarfile="hello.jar" manifest="mani.mf" />