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のコメントを用います。
<!-- 単一行のコメント --> <!-- 複数行のコメント なんたらかんたら うんたらどうたら -->