antのbuild.xmlサンプル
- Tue
- 03:18
- JAVA
最近だとmaven(mvn)でやっちゃう場合が多いかと思いますが、簡単なサンプルや小さいjavaソースなんかをbuildしたいときは何気に便利。mavenはちょっとしたjarなんかの設定も前もって準備しないといけないので。
サンプルのbuild.xmlは3つのターゲットを設定(compile、jar、clean)。
8行目から13行目で、外部jarのpathを定義して、23,24行目でcompile時に利用するものを指定(ここでは全部)。
この例は、*.classファイルをjarにまとめてます。jarにまとめるとMANIFEST.MFが作成され、ここにこのjarの固有設定を追加することができます。31行目からのmanifestタグにで設定。
この例では、Main-ClassにclassTest01を指定しており、javaで起動したときのmain関数がこのクラスになることを明示しています。
よくある、外部jarがclass not foundになってしまう場合は、Class-Pathを設定し、valueにspace区切りでパスを書けば、このjarで使う外部jarの設定が可能。相対パスしか認識できないという記述をよく見ますが、私の環境では絶対パスでもいけました。
38行目からのcleanで削除するfile、dirの指定はやや面倒。makefileならlinuxの場合は、OSコマンドのrmで一発なんですけどね。defaultexcludesの指定は、antのdeleteでdefaultでは削除しないファイルを削除する場合に指定します。*~等は、defaultで削除されないので、このオプションがないと ant cleanしても削除されない。
javaのサンプルソースはおいおい。
01:<project name="prjTest01" default="jar" basedir="."> 02: 03: <property name="javac.target" value="1.7"/> 04: 05: <property name="build.dir" value="${basedir}/build" /> 06: <property name="src.dir" location="src/java" /> 07: 08: <path id="class.path.external01"> 09: <fileset dir="/opt/external/jars" includes="*.jar" /> 10: </path> 11: <path id="class.path.tools"> 12: <fileset dir="${basedir}/jars" includes="*.jar" /> 13: </path> 14: 15: 16: <target name="compile"> 17: <mkdir dir="${build.dir}" /> 18: <javac srcdir="${src.dir}" 19: destdir="${basedir}/build" 20: encoding="UTF-8" 21: debug="on" 22: > 23: <classpath refid="class.path.external01" /> 24: <classpath refid="class.path.tools" /> 25: <compilerarg value="-Xlint:unchecked"/> 26: </javac> 27: </target> 28: 29: <target name="jar" depends="compile"> 30: <jar destfile="${basedir}/build/test01.jar" basedir="${basedir}/build/"> 31: <manifest> 32: <attribute name="Main-Class" value="classTest01" /> 33: </manifest> 34: <include name="**/*.class"/> 35: </jar> 36: </target> 37: 38: <target name="clean"> 39: <delete dir="${build.dir}" /> 40: <delete> 41: <fileset dir="." includes="*~" defaultexcludes="no"/> 42: <fileset dir="." includes="*.log" /> 43: </delete> 44: </target> 45: 46:</project>1行目のdefaultは、antのtarget指定なしの場合のtarget(makeのall的なもの)。
サンプルのbuild.xmlは3つのターゲットを設定(compile、jar、clean)。
8行目から13行目で、外部jarのpathを定義して、23,24行目でcompile時に利用するものを指定(ここでは全部)。
この例は、*.classファイルをjarにまとめてます。jarにまとめるとMANIFEST.MFが作成され、ここにこのjarの固有設定を追加することができます。31行目からのmanifestタグにで設定。
この例では、Main-ClassにclassTest01を指定しており、javaで起動したときのmain関数がこのクラスになることを明示しています。
よくある、外部jarがclass not foundになってしまう場合は、Class-Pathを設定し、valueにspace区切りでパスを書けば、このjarで使う外部jarの設定が可能。相対パスしか認識できないという記述をよく見ますが、私の環境では絶対パスでもいけました。
38行目からのcleanで削除するfile、dirの指定はやや面倒。makefileならlinuxの場合は、OSコマンドのrmで一発なんですけどね。defaultexcludesの指定は、antのdeleteでdefaultでは削除しないファイルを削除する場合に指定します。*~等は、defaultで削除されないので、このオプションがないと ant cleanしても削除されない。
javaのサンプルソースはおいおい。