ここでは、基本的なタスクの説明を行います。
ここでは、以下の構造でJavaプロジェクトを作ってみます。
src/
|__aaa/
|__Main.java
classes/
build.xml
最初のbuild.xmlはコレです。 Javacタスクでコンパイルします。
<project name="helloant" default="compile">
<target name="compile">
<javac srcdir="src"
destdir="classes"/>
</target>
</project>
コンパイルを実行します。 ソースパスの指定だけで、再帰的にソースを検索してくれます。
C:\projects\tmp\at>ant
Buildfile: build.xml
compile:
[javac] Compiling 1 source file to C:\projects\tmp\at\classes
BUILD SUCCESSFUL
Total time: 2 seconds
パスは外だしといた方が何かと便利なので(複数のタスクから使うことが多いので)、 プロパティーで定義しときましょう。
<project name="helloant" default="compile">
<property name="src" value="src"/>
<property name="classes" value="classes"/>
<target name="compile">
<javac srcdir="${src}"
destdir="${classes}"/>
</target>
</project>
実行はJavaタスクです。
<project name="helloant" default="compile">
<property name="src" value="src"/>
<property name="classes" value="classes"/>
<target name="compile">
<javac srcdir="${src}"
destdir="${classes}"/>
</target>
<target name="run" depends="compile">
<java classname="aaa.Main"
classpath="${classes}" >
</java>
</target>
</project>
クラスパスを${classes}に通しています(さっそくプロパティー指定が役立った!)。
depends属性を必須ではないですが、指定しておけば、runタスクを実行する前に、
自動的にcompileタスクを実行してくれます
(イチイチ、ant compile、ant runとしなくてすむ)。
実行します。runターゲットを指定します。
C:\projects\tmp\at>ant run
Buildfile: build.xml
compile:
run:
[java] hello!
BUILD SUCCESSFUL
Total time: 1 second