基本情報
概要
Apache Ant(アパッチ アント)とは、ビルドツールです。複雑なコンパイル作業を自動化します。「XML記述」「Javaベースであるためプラットフォームに依存しない」などの特徴があります。
基本説明
Java実装Webアプリケーションを実行するために必要な「コンパイル→パッケージング→ デプロイ」の一連の作業を記述しておき、Javaの機能を用いて、コマンド一発で実行するためのツールです。
Ant自体はJavaで実装されていて、Java版「GNU make」といえるものです。OSなど特定の環境に依存しにくい特徴があります。
経緯
「Ant」は「Another Neat Tool」の略とされています。
もともと「Apache Tomcat」ビルド用に開発されました。
主な特徴
複雑なコンパイルプロセスを簡略化
ビルド手順(コンパイル/jarファイル作成など)を形式化できるため、複雑なビルド手順を自動化できます。
簡単なビルドコマンドでコンパイルできる場合(ソースファイルが1つしかなく、javacコマンドを1回実行するだけでコンパイル可能な場合など)は、逆に作業負荷が増えます。ビルドプロセスが複雑な場面において効果を発揮します。
処理プロセスのグループ化
ターゲットとして処理をまとめることができます。例えば「javacタスク」と「native2asciiタスク」をまとめてコンパイルターゲットにできます。ターゲットごとに必要とされる処理のみを選択して実行可能です。
また、ディレクトリ内の全ファイルを処理対象にできます。
依存関係解決
「jarファイル作成の前に、ソースがコンパイルされている必要がある」などの依存関係を自動解決できます。このような依存関係について意識する必要がなくなります。
インクリメンタルビルド
ビルド処理を行うタスクは、タイムスタンプを調べて処理が必要なファイルのみ処理します。
タスクをXMLで記述
複雑なタスク(ビルドルール)をXMLで分かりやすく記述できます。
用意されているAntプラグインを利用して、パラメータ指定のみでパッケージング/デプロイなどの処理を実現します。
Antが提供しているAPIを使用して、Javaでタスクの独自開発も行えます。
XMLでビルド内容が記述されているため、同一のビルドファイルでマルチプラットフォーム対応できます。
豊富なJava開発ツールに対応
各種Java開発ツール(javac/ja/rmic/war/native2asciiなど)に対応しています。また、JavaBeansからEJBを生成するxdoclet/vdocletなどからもタスクが提供されています。
IDE連携
統合開発環境「Eclipse」は、Antプラグインを標準搭載しています。
.NET Frameworkサポート
「IKVM.NETプロジェクト」および「Monoプロジェクト」により、「Ant task for IKVMC」として.NET Frameworkでの利用も促進されています。
同様製品
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「Bazel」「Maven」「Gradle」など。
ライセンス情報
Apache Antのライセンスは「Apacheライセンス」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。