I-16-6. ツール実行を自動化するAnt

コンパイルやテスト、バージョン管理などソフトウェア開発に関わるあらゆる処理の実行を自動化するツールAntを説明する。Antの基本処理であるコンパイル、ビルドのXMLによる設定方法を示す。また、Antで自動化できるテスト、ファイル転送、リモートホスト操作、バージョン管理などを紹介する。

【学習の要点】

* AntはJavaで開発されているビルドツールで、Java版のmakeに相当する。

* makeはOS(オペレーティングシステム)などの環境への依存性が高く、記述も比較的難解であるが、Antはこのようなmakeの欠点を補うものである。

図I-16-6. antが読み込むbuild.xmlのサンプル

【解説】

1) Antとは

Ant (Apache Ant)とは、Jakartaプロジェクトで開発されている、ビルド(ソースコード等から実行ファイルを作成すること)のためのツールであり、Apacheライセンスにて配布されているOSSである。統合開発環境であるEclipseには、Antプラグインが標準装備されている。AntはJavaで開発されており、Javaの動作する環境であればAntを利用できる。Antは「ant」コマンドで実行され、引数を指定しない場合、カレントディレクトリにあるbuild.xmlというビルドファイル(ビルドのための設定を記述するファイル)に従って処理される。

2) Antのビルドファイル

AntのビルドファイルはXMLで記述する。最上位の要素として、1つのproject要素を記述する。project要素の子要素として、1つ以上のtarget要素を記述する。一連の処理のまとまりは、target要素単位で記述する。target要素の子要素には、タスク(Antで扱う処理の最小単位)を表す要素を記述する。タスクは、プラグインとして提供されているものを追加したり、AntのAPI(アプリケーションプログラミングインタフェース)に従って自作したものを追加したりすることができる。主なAntタスクは以下の通りである。

* コアタスク Antコアパッケージに含まれているタスク

- javac Javaソースコードをコンパイルする。

- javadoc Javaソースコードからドキュメントを生成する。

- java Javaプログラムを実行する。

- echo メッセージを出力する。

- ant 別のビルドファイルにあるタスクを読み込んで実行する。

* オプションタスク 外部ライブラリを用いて機能させるタスク

- junit テストフレームワークJUnitを使ってJavaプログラムをテストする。

- ftp FTPによるファイルのアップロード、ダウンロードを行う。

- scp SCP、SFTPによるファイルのアップロード、ダウンロードを行う。

- rexec リモートホストに対しrexecによるコマンド実行を行う。

- sshexec リモートホストに対しSSHによるコマンド実行を行う。

- cvs CVSによるバージョン管理を行う。

3) ビルドファイルの基本

ビルドファイルの例として、Antの基本処理であるコンパイル、ビルドの記述例を図に示す。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。