AntはJavaベースのビルドツールです。 理論的には、Antはmakeの一種ですが、makeの持っているような問題点を持ちません。
すでにmakeや、gnumake、nmake、jam などが存在するのに、なぜ別のビルドツールが必要なのでしょうか。 それは、マルチプラットフォームに対応したソフトウェアを開発する時に、 これら全てのツールには、 Antのオリジナルの開発者が我慢できなかった限界があるからです。 makeのようなツールは、本質的にシェルベースです。 依存関係を評価して、 シェル上で実行するのと同じように、コマンドを実行します。 これは、あなたが使っているOSに対して任意のプログラムを利用、 あるいは記述することで、これらのツールを容易に拡張できることを意味しています。 しかし、これは同時にあなたがOSに制限される、 少なくとも、あなたが使っている、Unix といった OS の種類を限定してしまうことも意味します。
さらに、Makefileは本質的に良くありません。 Makefileを使ったことがある人はみな、いつも、 やっかいなタブの問題に直面してきました。 "タブの前に一個の空白があったために、私のコマンドが実行されない!!!" Antのオリジナルの著者は何度も言い続けてきました。 Jamのようなツールは、この問題を大部分解消してくれますが、 まだ別のフォーマットを使用しているので、それを覚える必要があります。
Antは違います。 シェルベースのコマンドにより拡張したモデルの代わりに、 Javaクラスを使用して拡張します。 シェルコマンドを記述するかわりに、 設定ファイルを XML ベースで記述し、 様々な実行するタスクを記述したターゲットツリーを呼び出します。 それぞれのタスクは、 特定のTaskインターフェイスを実装したオブジェクトによって実行されます。
仮にAntで、
`find . -name foo -exec rm {}`
Copyright © 2000-2002,2004 The Apache Software Foundation. All rights Reserved.