Sun, January 29, 2006
ANT覚え書き
antを使っていて、たびたび調べ直すことになったテクニックの備忘録を集める。
リソースファイルをjarに含めたい
ボタンアイコン画像などをjarに含めたい場合があります。 そういうときは、jarタスク内で、以下のような記述をすればよい。
この例では、srcディレクトリ以下に含まれる .pngの拡張子を持つファイルを 全部 jar に追加する。
<target name="jar" depends="compile">
<jar destfile="./tlog-gui.jar">
<zipfileset dir="./bin" />
<fileset dir="src">
<include name="**/*.png" />
</fileset>
</jar>
</target>
ANTでexecutableなjarを生成する
build.xml に以下のように記述。
<target name="exejar">
<jar destfile="foo.jar">
<zipfileset dir="classes" />
<zipfileset src="lib/some.jar" />
<manifest>
<attribute name="Main-Class" value="foo.bar.Main" />
</manifest>
</target>
jarを作成するときに、一緒に含めるjarをまとめて指定したい
実行可能なjarを生成したいときなど、依存するライブラリ類をまとめてjarにしたいときがある。 このとき、build.xmlの記述を簡単に書きたい。
たとえば、lib/ 以下にあるすべてのjarを含めてjarを生成したい場合の記述。
<project default="makejar">
<target name="makejar">
<jar destfile="sample.jar" >
<zipgroupfileset dir="lib" includes="*.jar" />
</jar>
</target>
</project>
pathエレメントに複数のファイルを指定
今度は、jarをつくるときではなく、 pathエレメントに複数のファイルをまとめて指定したい場合。
<path id="compile.class.path">
<fileset dir="./lib">
<include name="*.jar" />
</fileset>
</path>
pathエレメントに複数のディレクトリを指定
複数のファイルだけでなく、複数のディレクトリを含めたい場合があります。
<path id="compile.class.path">
<fileset dir="./lib">
<include name="*.jar" />
</fileset>
<fileset dir="../lib.ext">
<include name="*.jar" />
</fileset>
</path>
このアプリケーションに固有の jar は ./lib に入れておき、 複数のアプリケーションで共有している jar は、../lib.ext に入れておく、 といった管理方法をしているときに便利です。