Apache Ant
概要

LinuxなどのUNIX系OSでよく用いられる「make」コマンドのようなビルドツールと呼ばれるソフトウェアの一つで、人間が書いたソースコードを元にコンパイルやファイルのコピーなどの処理を連続的に行い、実行可能なプログラムのセットを生成してくれる。makeコマンドの設定ファイルであるMakefileはOSやシェルが変わると動作しなくなることがあったが、AntはJavaで実装されているため環境を問わず同じように動作する利点がある。
Antではビルドに必要な個々の処理や手順を「タスク」と呼ぶ。開発者はどのタスクをどのような設定で、どの順番で実行するかをXML形式のビルドファイル(build.xml)として記述しておけば、プログラムを修正するたびに一連の手順を手作業で繰り返さなくてもAntが自動的に実行してくれる。
このファイルはプロジェクト(project)、ターゲット(target)、タスク(task)の三階層になっている。プロジェクトはビルド全体の単位であり、ターゲットはひとまとまりの処理手順、タスクはその中の個々の処理を指す。ターゲット間には依存関係を定義できるため、「テストの前にコンパイルを済ませる」といった実行順序の制御ができる。
標準で様々なタスクが用意されており、Javaソースコードのコンパイルを行うjavacタスク、JARファイルの生成を行うjarタスク、ファイルのコピーを行うcopyタスク、削除を行うdeleteタスク、ディレクトリ作成を行うmkdirタスクなどビルド時に必要となる基本的な操作を網羅している。
また、JavadocによるAPIドキュメント生成、JUnitを用いたユニットテストの実行、FTPやHTTPを介したファイル転送、SubversionやGitなどのバージョン管理システムとの連携、ZipやTARによるファイル圧縮やアーカイブ化なども標準タスクまたは拡張タスクとして利用できる。独自のタスクをJavaで実装して組み込むこともできる。
現在はMavenやGradleといった後発のビルドツールが主流となっており、特に依存関係管理や規約ベースの設定を重視する場面ではこれらが選ばれることが多い。Antは自由度の高さと設定の明示性から、既存の大規模プロジェクトや独自のビルドフローが求められる環境では今でも使用されることがある。