「Ant」タスクいろいろ
Ant に関してまとめてみようということで、手始めにタスクをいろいろと試してみました。その時のメモ。
[ 環境情報 ]
Windows 7 SP1
Java SE 7
Apache Ant 1.8.4
以下のタスクを試しみました。
1. メッセージを表示する
2. .java ファイルを .class ファイルにコンパイル、および、実行する
1 ~ 2 のタスク、まとめて書いてみました。
■ build.xml
<?xml version="1.0" encoding="Shift-JIS"?> <project name="SampleProject" default="echo" basedir="."> <property name="src" value="src"/> <property name="dest" value="dest"/> <target name="echo"> <echo message="echo message !!" /> </target> <target name="compile"> <javac srcdir="${src}" destdir="${dest}" /> </target> <target name="run" depends="compile"> <java classname="Hello" classpath="${dest}" /> </target> </project>
ディレクトリ構成は以下の感じです ( AntSample が作業ディレクトリ )。
AntSample - build.xml - src - Hello.java - dest
■ Hello.java
public class Hello { public static void main(String[] args) { System.out.println("Hello.java"); } }
ついでに、以下のようなタスクも試してみました。
3. .class ファイルから .jar ファイルを作成する
4. 上記の .jar ファイル内のクラスを呼び出す .java ファイルをコンパイルし、実行する
- 略 - <property name="src" value="src"/> <property name="dest" value="dest"/> <property name="jar" value="jar"/> <target name="jar"> <javac srcdir="${jar}" destdir="${jar}" /> <jar basedir="${jar}" jarfile="${jar}\classb.jar" /> </target> <target name="compile2"> <javac srcdir="${src}" destdir="${dest}" classpath="${jar}\classb.jar"/> </target> <target name="run2" depends="compile2"> <java classname="ClassA" classpath="${dest};${jar}\classb.jar" /> </target> - 略 -
ディレクトリ構成は以下の感じです ( AntSample が作業ディレクトリ )。
AntSample - build.xml - src - ClassA.java - dest - jar - ClassB.java
■ ClassA.java
public class ClassA { public static void main(String[] args) { ClassB inst = new ClassB(); inst.method(); } }
■ ClassB.java
public class ClassB { public void method() { System.out.println("ClassB method()"); } }
実行は以下のコマンドで。
ant -buildfile build.xml < タスク名 >
ドキュメントは以下になりますね。
・Overview of Apache Ant Tasks
http://ant.apache.org/manual/tasksoverview.html
ちょっと雑な感じになりましたが、以上です。