Apache Ant

Apache Ant（アパッチ アント）は、ビルド自動化のためのソフトウェアである。

GNU make のJava版ともいえるものであり、オペレーティングシステム (OS) など特定の環境に依存しにくいビルドツールである。XML文書でビルド（ソフトウェア構築）のルールを記述することが特徴である。統合開発環境EclipseにはAntプラグインが標準で内蔵されている。元々 Apache Tomcat をビルドするために開発されたものである。

Apache Antは、Apacheソフトウェア財団によってApache Licenseの下で公開されているFOSSである。

Antはタスクと呼ばれる何種類ものXML要素をビルドファイル (デフォルトではbuild.xml) 上に記述してビルドのルールを作る。このタスクは、Antのプラグインとして提供されているものを外部から採り入れることで、追加することもできる。また、このタスクをAntのアプリケーションプログラミングインタフェース (API) に従ってJavaで記述することにより、自作することもできる。

またでは、Javaのみならず、IKVM.NETプロジェクトによりAnt task for IKVMCとしてMono/.NET Frameworkでの利用も促進されている。

歴史
Ant（「Another Neat Tool」の略）は、 ジェームズ・ダンカン・デイビッドソン（James Duncan Davidson）によって、サン・マイクロシステムズのリファレンスJSPおよびサーブレットエンジン（後のApache Tomcat）をオープンソースとして公開する準備の際に考案された。Solaris上でのビルドにはプロプライエタリソフトウェア版のMakeが使用されていたが、オープンソースの世界ではTomcatをどのプラットフォームでビルドするかを制御する手段が存在しなかった。そのため、AntはXML形式の「ビルドファイル」に記述された指示に従ってTomcatをビルドするための単純なプラットフォーム非依存ツールとして作成された。Ant（バージョン1.1）は2000年7月19日に単独の製品として正式にリリースされた。

Antバージョン2に向けて複数の提案がなされた。たとえば、ジェームズ・ダンカン・デイビッドソンによるAntEater、ピーター・ドナルドによるMyrmidon、コナー・マクニールによるMutantなどであるが、いずれも開発者コミュニティに広く受け入れられるには至らなかった。

2002年当時、AntはほとんどのJava開発プロジェクトで使用されていたビルドツールであった。たとえば、多くのオープンソースJava開発者が配布物にbuild.xmlファイルを含めていた。AntはビルドプロセスとJUnitテストの統合を容易にしたため、開発者がテスト駆動開発やエクストリーム・プログラミングを採用することを可能にした。

2004年、Apacheはこれと類似の目的を持つ新しいツールであるMavenを作成した。

Gradleは、2008年に作成された類似ソフトウェアであり、XMLではなくGroovy（およびその他の言語）を使用するという点で異なる。

拡張機能
WOProject-Antは、Ant用に記述されたタスク拡張の一例である。これらの拡張機能は、その.jarファイルをAntのlibディレクトリにコピーすることでインストールされる。この作業が完了すれば、これらのタスク拡張は通常のbuild.xmlファイル内で直接呼び出すことが可能となる。WOProjectは、WebObjects開発者がAppleのXcodeを使う代わりにAntを用いてフレームワークやアプリケーションを構築することを可能にする。

Antcontribは、条件文やプロパティに対する操作といったタスクのほか、有用な各種タスクを提供している。

Ant-contrib.unkrig.deは、ネットワーク、Swingユーザインタフェース、JSON処理などのためのタスクや型を実装している。

そのほかにも、Perforce、.NET Framework、EJB、ファイルシステム操作用のタスク拡張が存在する。

 主なAntタスク 
 javac  Javaソースコードをコンパイルする。
 javadoc  JavaソースコードからJavadocドキュメント（Java APIドキュメント）を生成する。
 java  Javaプログラムを実行する。
 junit  テストフレームワークJUnitを使ってJavaプログラムをテストする。
 junitreport  junitタスクで出力した結果ファイルを用いてHTMLフォーマットなどに対応したレポートを生成する。
 copy  ファイルをコピーする。
 delete  ディレクトリやファイルなどを削除する。
 mkdir  ディレクトリを作成する。
 ftp  FTP接続を開始して、ファイルのアップロード、ダウンロードなどを可能にする。
 scp  SCP、SFTP接続を開始して、ファイルのアップロード、ダウンロードなどを可能にする。
 cvs  CVS接続を開始して、CVSリポジトリからのチェックアウト、コミットなどを可能にする。
 genkey  署名つきJARファイルを作成するために必要な証明書を生成する。
 signjar  JARファイルに署名する。
 native2ascii  Javaソースコードなどに含まれるマルチバイト文字の文字列部分をJDKに付属している変換ツールを使ってASCIIコードに変換する。
 setproxy  ネットワークに接続するタスクを実行する際に、プロキシサーバのアドレスを設定する。
 tstamp  タイムスタンプを更新しAntで使われている変数 DSTAMP、TSTAMP を更新する。
 zip  指定したディレクトリやファイルをZIP形式で圧縮・アーカイブする。
 echo  コンソール（コマンドライン環境）に文字列を出力する。
 splash  実行時に指定した時間だけスプラッシュを表示する。画像を指定することもできる。
 buildnumber  ビルドナンバーを更新する。デフォルトでは同じディレクトリにbuild.numerという名前のファイルが自動生成され、そのファイルにビルドナンバーが記録される。
 ant  別のAntビルドファイルにあるタスクを読み込んで実行する。

 脚注 

 参考文献 


 関連項目 

 アジャイルソフトウェア開発
 エクストリーム・プログラミング
 継続的インテグレーション
 Apache Maven

 外部リンク 
 Apache Ant
 Apache Ant
 NAnt - Apache Antの.NET Frameworkへの移植版

Ant
Category:Java開発ツール
Category:オープンソースソフトウェア
Category:ビルド自動化
Category:Javaでプログラムされた自由ソフトウェア