antは、バッチ処理を行うアプリケーションです。
処理の内容は、build.xmlに記述します。
<project要素> := property要素 + <target要素>* + コメント要素*
build.xmlには、project要素が一つだけ存在します。
project要素には、property要素と複数のtarget要素が含まれます。
build.xmlファイルの先頭では、文字コードを指定する必要があります。
<?xml version="1.0" encoding="MS932"?>
<?xml version="1.0" encoding="MS932"?> <project name="XXXXXXXXXX" default="XXXXXXXXXX" basedir="."> property要素 target要素 ... </project> build.xml
project要素は、build.xmlに一つだけかかれます。 project要素の中に、バッチ処理の中で使われる定数を定義する property要素と 処理を定義する target要素を記述します。
project要素には以下の属性を定義できます。
属性 | 説明 | 推奨値 |
name | project名 | ${Eclipseのプロジェクト名} |
default | target無指定の場合、処理するtarget | build |
basedir | バッチ処理の基準となるディレクトリ | .(カレントディレクトリ) |
property要素には、project内で用いる定数を定義します。
通常は、build.xml 内には、
定数定義を build.properties 内に外部定義することだけを宣言します。
<?xml version="1.0" encoding="MS932"?> <project name="XXXXXXXXXX" default="XXXXXXXXXX" basedir="."> <property file="build.properties" /> target要素 ... </project> build.xml
build.properties には、下記のように 項目名=値 の形式で
build.xmlで使われる定数の定義を行います。
## # dir setting ## srcDir=src/ distDir=bin/ libDir=lib/ ## # javac setting ## javac.debug=on javac.deprecation=on javac.optimize=off javac.encoding=MS932 javac.target=1.4 javac.source=1.4
build.propertiesで定義された定数は、 build.xml では ${項目名} の形で参照することが出来ます*1。
<?xml version="1.0" encoding="UTF-8"?> <project name="simple compile" default="compile" basedir="."> <property file="build.properties" /> <path id="class.path"> <fileset dir="${libDir}"> <include name="**/*.jar" /> </fileset> </path> <target name="compile" description="ソースコードのコンパイルをします"> <javac srcdir="${srcDir}" excludes="${excludes}" destdir="${distDir}" deprecation="${javac.deprecation}" debug="${javac.debug}" optimize="${javac.optimize}" encoding="${javac.encoding}" source="${javac.source}" target="${javac.target}" classpathref="class.path" /> </target> </project>
<target要素> := <target要素>* + task要素*
target要素 に、実際の処理を行う task要素 を記述します。
target要素には以下の属性を定義できます。
属性 | 説明 | 推奨値 |
name | project名 | 特になし |
description | ターゲットに関する説明 | 特になし |
depends | 依存させるtarget要素 | 特になし |
depends属性 によって、target要素 を別の複数の target要素 に依存させることが出来ます。つまり、ある target要素 処理を行う前に、前処理として別の target要素 を処理させることが出来ます。
たとえば、下記のような依存関係を作ることが出来ます。
<target name="build" depends="clean,compile"> | +--><target name="clean"> | (/binディレクトリ内を削除) | +--><target name="compile" depends="i18n"> (/srcディレクトリ内のソースをコンパイルする。出力先は/bin) | | +-><target name="i18n"> (.propertiesファイルのUnicodeエスケープ)
指定したターゲット | 実行されるターゲット | |||
build | clean | compile | i18n | |
build | ○ | ○ | ○ | ○ |
clean | × | ○ | × | × |
compile | × | × | ○ | ○ |
i18n | × | × | × | ○ |
具体的なタスクについてはAntタスク雛型集?を参照
antのコメントには、XMLのコメントを用います。
<!-- 単一行のコメント --> <!-- 複数行のコメント なんたらかんたら うんたらどうたら -->