antのbuild.xmlサンプル

最近だとmaven(mvn)でやっちゃう場合が多いかと思いますが、簡単なサンプルや小さいjavaソースなんかをbuildしたいときは何気に便利。mavenはちょっとしたjarなんかの設定も前もって準備しないといけないので。

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のサンプルソースはおいおい。

カテゴリ

Amazon

アクセスランキング

[ジャンルランキング]
コンピュータ
249位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
38位
アクセスランキングを見る>>

RSSリンクの表示

ブロとも申請フォーム

Copyright © nopgm