Apache Antメモ このエントリーをはてなブックマークに追加

提供:Asterisk Works Wiki
移動: 案内, 検索

Jarタスクで依存ライブラリのJarもまとめてひとつのJarファイルにする

excutableなJarを作る場合など使うときにわざわざクラスパスを通すのが面倒なのでひとつのJarにまとめたくなる。

そんな場合にはzipfileset を使つかい、srcにjarファイルを指定すると依存ライブラリのjarの中身を簡単にJarに組み込める。

<target name="jar" depends="prepare" description="description">
<jar destfile="dest/sampleapp-${datetime}.jar" basedir="classes" index="true">
<manifest>
  <attribute name="Build-Date" value="${TODAY}"/> 
  <section name="Geneal Infomation">
     <attribute name="Specification-Title" value="Sample App"/>
      <attribute name="Specification-Version" value="Sample App 1.0"/>  
  </section> 
  <section name="Vender Information"> 
      <attribute name="Produced-By" value="Asterisk-works Project"/> 
  </section> 
</manifest> 
<zipfileset includes="**/*" src="lib/commons-logging-1.1.1.jar"></zipfileset>
<zipfileset includes="**/*" src="lib/mybatis-3.0.4.jar"></zipfileset>
<zipfileset includes="**/*" src="lib/opencsv-2.2.jar"></zipfileset>
<zipfileset includes="**/*" src="lib/sqlitejdbc-v056.jar"></zipfileset>
<zipfileset includes="**/*" src="lib/velocity-1.7-dep.jar"></zipfileset> 
<zipfileset includes="**/*" src="lib/velocity-tools-generic-2.0.jar"></zipfileset>
</jar>
</target>

昔、やったときにはunzipタスクで一度バラしてからJarにまとめたが、unzipに時間がかかるし、泥臭いやり方だなぁと思ったものだ。こんな便利なタグがあったとは。。。


ZIPファイルの中のシェルスクリプトに実行権限をつける

これもzipfilesetを使えばできる。次の例の赤字の部分のようにアトリビュートを追加すれば良い

<target name="package" depends="jar" description="関連ファイルをZIPにまとめる">
   <zip destfile="MyApp.zip" >
   	<zipfileset dir="bin" prefix="MyApp/bin" excludes="**/*.sql" filemode="755"/>
   	<zipfileset prefix="MyApp" dir="." includes="bin/sqls/*,conf/*,templates/**/*,myapp.jar,template/**/*,doc/README">
   	  <exclude name="**/*.tmp,**/*test*"/>
   	</zipfileset>
   </zip>
</target>
個人用ツール
名前空間
変種
操作
案内
主なカテゴリ
ツールボックス