コンテンツにスキップ

Apache Ant

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Apache Ant
Apache Ant Project
作者 ジェームズ・ダンカン・デイビッドソン
開発元 Apacheソフトウェア財団
初版 2000年7月19日 (24年前) (2000-07-19)
最新版
1.10.15 / 2024年8月29日 (7か月前) (2024-08-29)[1]
リポジトリ ウィキデータを編集
プログラミング
言語
Java
対応OS クロスプラットフォーム
プラットフォーム Java SE
種別 ビルドツール
ライセンス Apache License 2.0
公式サイト ant.apache.org ウィキデータを編集
テンプレートを表示

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

GNU makeJava版ともいえるものであり、オペレーティングシステム (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開発者がAppleXcodeを使う代わりにAntを用いてフレームワークやアプリケーションを構築することを可能にする。

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

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

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

主なAntタスク

[編集]
javac
Javaソースコードコンパイルする。
javadoc
JavaソースコードからJavadocドキュメント(Java APIドキュメント)を生成する。
java
Javaプログラムを実行する。
junit
テストフレームワークJUnitを使ってJavaプログラムをテストする。
junitreport
junitタスクで出力した結果ファイルを用いてHTMLフォーマットなどに対応したレポートを生成する。
copy
ファイルをコピーする。
delete
ディレクトリやファイルなどを削除する。
mkdir
ディレクトリを作成する。
ftp
FTP接続を開始して、ファイルのアップロードダウンロードなどを可能にする。
scp
SCPSFTP接続を開始して、ファイルのアップロード、ダウンロードなどを可能にする。
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ビルドファイルにあるタスクを読み込んで実行する。

脚注

[編集]
  1. ^ Apache Ant Project News”. 2024年12月11日閲覧。
  2. ^ Moodie 2005, pp. 5–9, Chapter §1 Introducing Ant.
  3. ^ Apache Ant - Frequently Asked Questions”. ant.apache.org. 2022年1月25日閲覧。
  4. ^ Why do you call it Ant? – Apache Ant FAQ”. 2025年4月5日閲覧。
  5. ^ MacNeill, Conor (2005年8月4日). “The Early History of Ant Development”. 2025年4月5日閲覧。
  6. ^ Wiley (2002). Java Tools for eXtreme Programming. p. 76 
  7. ^ WOProject-Ant – WOProject / WOLips – Confluence”. 2009年1月8日時点のオリジナルよりアーカイブ。2025年4月5日閲覧。
  8. ^ Ant-Contrib”. 2025年4月5日閲覧。
  9. ^ Ant-Contrib Tasks”. 2025年4月5日閲覧。
  10. ^ Moodie 2005, pp. 266–267, Chapter §10 Writing Custom Tasks - Using Third-Party Custom Tasks.
  11. ^ ant-contrib.unkrig.de”. 2025年4月5日閲覧。
  12. ^ Overview of Ant Tasks”. 2025年4月5日閲覧。

参考文献

[編集]
  • Moodie, Matthew (2005). Pro Apache Ant (1st ed.). Apress. ISBN 1-59059-559-9. https://archive.org/details/proapacheant0000mood/page/n1/mode/2up 

関連項目

[編集]

外部リンク

[編集]