Apache Ant
![]() | |
作者 | ジェームズ・ダンカン・デイビッドソン |
---|---|
開発元 | Apacheソフトウェア財団 |
初版 | 2000年7月19日 |
最新版 |
1.10.15
/ 2024年8月29日[1] |
リポジトリ | |
プログラミング 言語 | Java |
対応OS | クロスプラットフォーム |
プラットフォーム | Java SE |
種別 | ビルドツール |
ライセンス | Apache License 2.0 |
公式サイト |
ant![]() |
Apache Ant(アパッチ アント)は、ビルド自動化のためのソフトウェアである。
GNU make のJava版ともいえるものであり、オペレーティングシステム (OS) など特定の環境に依存しにくいビルドツールである。XML文書でビルド(ソフトウェア構築)のルールを記述することが特徴である[2]。統合開発環境EclipseにはAntプラグインが標準で内蔵されている。元々 Apache Tomcat をビルドするために開発されたものである[3]。
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」の略[4])は、 ジェームズ・ダンカン・デイビッドソン(James Duncan Davidson)によって、サン・マイクロシステムズのリファレンスJSPおよびサーブレットエンジン(後のApache Tomcat)をオープンソースとして公開する準備の際に考案された。Solaris上でのビルドにはプロプライエタリソフトウェア版のMakeが使用されていたが、オープンソースの世界ではTomcatをどのプラットフォームでビルドするかを制御する手段が存在しなかった。そのため、AntはXML形式の「ビルドファイル」に記述された指示に従ってTomcatをビルドするための単純なプラットフォーム非依存ツールとして作成された。Ant(バージョン1.1)は2000年7月19日に単独の製品として正式にリリースされた。
Antバージョン2に向けて複数の提案がなされた。たとえば、ジェームズ・ダンカン・デイビッドソンによるAntEater、ピーター・ドナルドによるMyrmidon、コナー・マクニールによるMutantなどであるが、いずれも開発者コミュニティに広く受け入れられるには至らなかった[5]。
2002年当時、AntはほとんどのJava開発プロジェクトで使用されていたビルドツールであった[6]。たとえば、多くのオープンソースJava開発者が配布物にbuild.xml
ファイルを含めていた[要出典]。AntはビルドプロセスとJUnitテストの統合を容易にしたため、開発者がテスト駆動開発やエクストリーム・プログラミングを採用することを可能にした。
2004年、Apacheはこれと類似の目的を持つ新しいツールであるMavenを作成した。
Gradleは、2008年に作成された類似ソフトウェアであり、XMLではなくGroovy(およびその他の言語)を使用するという点で異なる。
拡張機能
[編集]WOProject-Ant[7]は、Ant用に記述されたタスク拡張の一例である。これらの拡張機能は、その.jar
ファイルをAntのlib
ディレクトリにコピーすることでインストールされる。この作業が完了すれば、これらのタスク拡張は通常のbuild.xml
ファイル内で直接呼び出すことが可能となる。WOProjectは、WebObjects開発者がAppleのXcodeを使う代わりにAntを用いてフレームワークやアプリケーションを構築することを可能にする。
Antcontrib
[8]は、条件文やプロパティに対する操作といったタスクのほか、有用な各種タスクを提供している[9][10]。
Ant-contrib.unkrig.de
[11]は、ネットワーク、Swingユーザインタフェース、JSON処理などのためのタスクや型を実装している。
そのほかにも、Perforce、.NET Framework、EJB、ファイルシステム操作用のタスク拡張が存在する[12]。
主な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 Ant Project News”. 2024年12月11日閲覧。
- ^ Moodie 2005, pp. 5–9, Chapter §1 Introducing Ant.
- ^ “Apache Ant - Frequently Asked Questions”. ant.apache.org. 2022年1月25日閲覧。
- ^ “Why do you call it Ant? – Apache Ant FAQ”. 2025年4月5日閲覧。
- ^ MacNeill, Conor (2005年8月4日). “The Early History of Ant Development”. 2025年4月5日閲覧。
- ^ Wiley (2002). Java Tools for eXtreme Programming. p. 76
- ^ “WOProject-Ant – WOProject / WOLips – Confluence”. 2009年1月8日時点のオリジナルよりアーカイブ。2025年4月5日閲覧。
- ^ “Ant-Contrib”. 2025年4月5日閲覧。
- ^ “Ant-Contrib Tasks”. 2025年4月5日閲覧。
- ^ Moodie 2005, pp. 266–267, Chapter §10 Writing Custom Tasks - Using Third-Party Custom Tasks.
- ^ “ant-contrib.unkrig.de”. 2025年4月5日閲覧。
- ^ “Overview of Ant Tasks”. 2025年4月5日閲覧。
参考文献
[編集]- Moodie, Matthew (2005). Pro Apache Ant (1st ed.). Apress. ISBN 1-59059-559-9
関連項目
[編集]外部リンク
[編集]- Apache Ant
- Apache Ant
- NAnt - Apache Antの.NET Frameworkへの移植版