2012年8月12日日曜日

【Ant】javacでコンパイルしてclassファイルを作成した後にそのclassファイルを元にJarファイルを作成するbuild.xmlを作ってみた その2

四の五の言わずまずはソースから

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_run_jar" name="Create Runnable Jar for Project smxFilter">
 <!--this file was created by Eclipse Runnable JAR Export Wizard-->
 <!--ANT 1.7 is required                                        -->

 <property name="jarname" value="Test.jar" />
 <property name="dir.src" value="src" />
 <property name="dir.lib" value="lib" />
 <property name="dir.dest" value="dest/bin" />
 <property name="javac" value="C:/user/java/6/bin/javac" />

 <path id="classpath.smx">
  <fileset dir="${dir.lib}" includes="*.jar" />
 </path>

 <target name="clean">
  <echo message="コンパイル先ディレクトリを削除します" />
  <delete dir="${dir.dest}" />
 </target>

 <target name="mkdir" depends="clean">
  <echo message="コンパイル先ディレクトリを作成します" />
  <mkdir dir="${dir.dest}" />
 </target>

 <target name="compile" depends="mkdir">
  <echo message="コンパイルを行います" />
  <javac srcdir="${dir.src}" destdir="${dir.dest}" executable="${javac}" debug="on" debuglevel="lines,vars,source" optimize="off" deprecation="on" encoding="UTF-8" includeAntRuntime="off">
   <classpath refid="classpath.smx" />
  </javac>
 </target>

 <target name="create_run_jar" depends="compile">
  <echo message="Jarファイルを作成します" />
  <jar destfile="${jarname}" filesetmanifest="mergewithoutmain">
   <manifest>
    <attribute name="Main-Class" value="Main" />
    <attribute name="Class-Path" value="." />
   </manifest>
   <fileset dir="${dir.dest}" />
   <zipgroupfileset dir="${dir.lib}" includes="*.jar"/>
  </jar>
 </target>

</project>

今回のポイントは以下
  • サードバーティのJar(俗にいうところのJarライブラリ)も一緒に含めてJarファイルを作成(俗にいうところの実行可能Jarファイル)
  • Tomcatプロジェクトじゃない(笑)

ちなみに前回はこちら
http://kakakikikeke.blogspot.com/2012/07/antjavacclassclassjarbuildxml.html
この2つがあれば大抵のことは実現できる・・・のかw

P.S
実行可能Jarファイルとして作成したいときにはMain-Classのvalueの値をパッケージ名付きの言わばフルパスで記載する必要があります

0 件のコメント:

コメントを投稿