Antは、開発やリリース時の一連の処理を自動化できる、Javaベースのビルドツールです。コンパイルプロセスは、EclipseやJBuilderなどの統合開発環境の利用によっても簡略化することが可能です。しかし、warファイルのパッケージングやUnitテストなど、複雑な処理を行う際はAntを利用した方が効率的です。また、環境に依存しないJavaの利点を生かし、開発環境と異なる環境でも設定ファイル(build.xml)を変更せずに、簡単にコンパイルが行えます。
本稿では、豊富なAntの機能の中から、開発の基本となるコンパイルとアプリケーションの実行について説明します。
操作手順
(1)Antのダウンロード
Antは、Apache Antプロジェクトの公式サイト(http://ant.apache.org)から入手できます。その時点での最新の安定版をダウンロードしてください。
設定など、Antの詳細については、「連載:現場に活かすJakarta Project」の「第2回 AntでJavaのビルドを簡単にする」を参照してください。また、Eclipse上からAntを実行すれば、複雑な設定が不要なうえ、コードアシスト機能も利用できて便利なので、設定ファイルの記述にはEclipseを使用することをお勧めします。EclipseからAntを利用する方法については、「連載:Eclipse徹底活用」の「第1回 Eclipseからビルドツール「Ant」を使う」を参照してください。
(2)自動化のための処理手順
本稿では、下記のようなフォルダ構成の環境で、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
- srcフォルダ下にあるJavaファイルをコンパイル
- コンパイルされたクラスファイルをbinフォルダに出力
- binフォルダ下にあるクラスファイルを実行
という一連の手順を、javacタスクとjavaタスクを使用して自動化する例を紹介します。
なお、srcフォルダ下にあるSample.javaは、「Hello World!」という文字列を出力するだけの単純なプログラムとします。また、libフォルダ内にあるhoge.jarとmoge.jarを参照しているものとします。
(3)設定ファイルの設定
以下は、前述した手順をAntで実行する設定ファイルです。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
(4)Antの実行
設定ファイルには、コンパイルを行うcompileターゲットとプログラムの実行を行うexecuteターゲット、さらにその両方を実行するallターゲットが定義されています。ここでは、「ant all」を実行して、コンパイルとプログラム実行の両方が行われていることを確認します。
注意:javacタスクは、不要なコンパイルを行わないようファイルのタイムスタンプを判定します。そのため、ソースとなるSample.javaがSample.classより古いファイルの場合、コンパイルは行われません。
各タスクについて
・javacタスク
本稿では、compileターゲットにjavacタスクを用いてコンパイルを行います。
属性名称 | 説明 | 必須 | |
---|---|---|---|
srcdir | javaのソースファイルがあるフォルダを指定 | Yes | |
destdir | クラスファイルを出力するフォルダを指定 | No | |
classpath | クラスパスを指定 | No | |
debug | デバッグ情報を付けるかどうかを指定(デフォルトoff) | No |
・javaタスク
本稿では、executeターゲットにjavaタスクを用いてプログラムを実行します。
属性名称 | 説明 | 必須 | |
---|---|---|---|
classname | 実行するJavaのクラス名 | Yes | |
jar | 実行するjarファイル名 | No | |
classpath | クラスパスを指定 | No | |
classpathref | 定義済みのクラスパスのIDを指定 | No | |
fork | 別のVMで実行 | No |
javaタスクは、特定のクラスファイルに対して動作するため、classnameかjarのいずれか1つの属性設定が必須です。なお、Javaクラスに引数を指定するにはargタグを利用し、VMに引数を渡すにはjvmargタグを利用します。
・echoタスク
echoタスクを使用すると、指定したメッセージを出力できます。
属性名称 | 説明 | 必須 | |
---|---|---|---|
message | 出力するメッセージ | Yes | |
file | 出力するファイル名(指定しない場合は標準出力に表示) | No |
javacタスクとjavaタスクの属性は、基本的にjavacコマンドとjavaコマンドのパラメータと関連があります。属性の設定方法については、Antの説明だけではなくコマンドそのものの解説を確認することをお勧めします。
Copyright © ITmedia, Inc. All Rights Reserved.