Apache Ant


Apache_Ant

 「ApacheAnt」  
Apache Antは、UnixのMakeビルドツールの代わりとして2000年初頭にApacheTomcatプロジェクトから始まったソフトウェアビルドプロセスを自動化するためのソフトウェアツールです。Makeに似ていますが、Java言語を使用して実装され、Javaプラットフォームが必要です。Makefile形式を使用するMakeとは異なり、AntはXMLを使用してコードビルドプロセスとその依存関係を記述します。 Apache Ant 原作者
ジェームズダンカンデビッドソン
開発者
Apache Software Foundation
初回リリース
2000年7月19日; 21年前 (2000-07-19)
安定リリース
1.10.11 / 2021年7月13日 ; 2か月前  (2021-07-13)
リポジトリ
Antリポジトリ
で書かれている Java プラットホーム Java SE タイプ
ビルドツール
ライセンス
Apacheライセンス2.0
Webサイト
ant .apache .org 
Apache SoftwareFoundationによってApacheライセンスの下でリリースされたAntはオープンソースプロジェクトです。

コンテンツ
1 歴史
2 拡張機能
3 例
4 移植性
5 制限事項
6 も参照してください
7 参考文献
8 参考文献
9 外部リンク

歴史
Ant( “Another Neat Tool”)は、Sun MicrosystemsのリファレンスJSPおよびサーブレットエンジン(後にApache Tomcat)をオープンソースとしてリリースする準備をしているときに、James DuncanDavidsonによって考案されました。独自のメイクのバージョンは、上でそれを構築するために使用されたのSolarisプラットフォームではなく、オープンソースの世界では、Tomcatを構築するために使用されたプラットフォームを制御する方法はありませんでした。そのため、Antは、XML「ビルドファイル」内のディレクティブからTomcatをビルドするための単純なプラットフォームに依存しないツールとして作成されました。Ant(バージョン1.1)は、2000年7月19日にスタンドアロン製品として正式にリリースされました。
ジェームズ・ダンカン・デビッドソンによるAntEater、ピーター・ドナルドによるMyrmidon 、コナー・マクニールによるMutantなど、Antバージョン2のいくつかの提案がなされましたが、いずれも開発者コミュニティに大きな支持を得ることができませんでした。
かつて(2002年)、AntはほとんどのJava開発プロジェクトで使用されていたビルドツールでした。たとえば、ほとんどのオープンソースJava開発者は、build.xmlファイルをディストリビューションに含めました。 Antを使用すると、JUnitテストをビルドプロセスと簡単に統合できるため、Antを使用すると、意欲的な開発者がテスト駆動開発やエクストリームプログラミングを簡単に採用できるようになります。

拡張機能
WOProject-Ant は、Ant用に作成されたタスク拡張の多くの例の1つにすぎません。これらの拡張機能は、.jarファイルをantのlibディレクトリにコピーすることでインストールされます。これが完了すると、これらのタスク拡張機能を通常のbuild.xmlファイルで直接呼び出すことができます。WOProject拡張機能を使用すると、WebObjects開発者は、Appleの Xcodeスイートを使用する代わりに、フレームワークとアプリの構築にantを使用できます。
Antcontribは、条件ステートメントやプロパティの操作などのタスクのコレクション、およびその他の便利なタスクを提供します。
Ant-contrib.unkrig.deは、ネットワーキング、 Swingユーザーインターフェイス、 JSON処理などのタスクとタイプを実装します。
Perforce、.NET Framework、EJB、およびファイルシステムの操作には、他のタスク拡張機能が


以下build.xmlに、単純なJava「Hello、world」アプリケーションのサンプルファイルを示します。-それは、4つのターゲット定義clean、clobber、compileおよびjar、それぞれが関連する記述を有します。jarターゲットが一覧表示されますcompile依存関係としてターゲットを。これは、jarターゲットを開始する前に、最初にcompileターゲットを完了する必要があることをAntに通知します。
<?xml version = "1.0"?>






<マニフェスト>
<属性 名= "メインクラス" 値= "HelloProgram" />


各ターゲット内には、そのターゲットを構築するためにAntが実行する必要のあるアクションがこれらは、組み込みのタスクを使用して実行されます。たとえば、 compile ターゲットAntをビルドするには、最初にというディレクトリを作成しclasses(Antはまだ存在しない場合にのみ実行します)、次にJavaコンパイラを呼び出す必要がそのため、使用されるタスクがあるmkdirとjavac。これらは、同じ名前のコマンドラインユーティリティと同様のタスクを実行します。
この例で使用される別のタスクの名前はjar次のとおりです。

このAntタスクは、一般的なJavaコマンドラインユーティリティであるJARと同じ名前ですが、実際にはAntプログラムの組み込みJAR / ZIPファイルサポートへの呼び出しです。この詳細は、必要なJARを要求したファイルで取得するほとんどのエンドユーザーには関係ありません。
多くのAntタスクは、ネイティブまたはJavaの外部プログラムに作業を委任します。彼らは、Antの独自の使用コマンドラインの設定、およびプログラムの引数にビルドファイル内の情報からマッピングし、戻り値を解釈するすべての詳細を処理するための作業を。ユーザーが行うどのタスクを参照することができ、この(例えば)、パス上の基本的なプログラムなしにシステム上でタスクを実行しようとすることによって、またはフルインストールのJava Development Kit(JDK)なし。

移植性
Antチームは、OpenJDKおよびその他のオープンソースJavaランタイムが実行されているすべてのシステムでAntを機能させる予定です。開発者は、Linux、MacOS、Microsoft Windows、およびUnix向けの開発に集中する傾向がAntは、OS / 2、OpenVMS、Solaris、HP-UXなどの他の多くのプラットフォームでも正常に使用されています。
Antの主な目的の1つは、Makeよりも移植性を高めることでした。Makeでは、ターゲットの作成に必要なアクションはプラットフォーム固有のシェルコマンドとして指定されますが、Antは、すべてのプラットフォームで同じように動作するように設計された大量の組み込み機能を提供します。たとえば、build.xml上記のサンプルファイルでは、クリーンターゲットによってclassesディレクトリとその中のすべてが削除されます。Makefileでは、これは通常、次のコマンドで実行されます。
rm-rfクラス/
rmは、他の一部の環境では使用できないUnix固有のコマンドです。たとえば、MicrosoftWindowsは次のものを使用します。
rmdir / S / Qクラス
Antビルドファイルでは、組み込みコマンドを使用して同じ目標を達成できます。

さらに、Antは、ディレクトリのスラッシュまたはバックスラッシュと、パス区切り文字のセミコロンまたはコロンを区別しません。それぞれを、実行するプラットフォームに適したシンボルに変換します。

制限事項
は、主題に対する記事の中立的な見方を損なう可能性が してくださいセクションの内容を統合し、全体としての物品に、または材料を書き換えます。
XMLで記述されたAntビルドファイルは、階層的で、半順序であり、広範囲にクロスリンクされているため、複雑で冗長になる可能性がこの複雑さは、学習の障害になる可能性が大規模または複雑なプロジェクトのビルドファイルは、管理できないほど大きくなる可能性がビルドファイルの優れた設計とモジュール化は読みやすさを向上させることができますが、必ずしもサイズを縮小するわけではありません。GradleやMavenなどの他のビルドツールは、一般性と柔軟性を犠牲にして、より簡潔なスクリプトを使用します。
古いタスク-など、毎日使用されているコアなものの多くはおよびタスクの最近のバージョンと一致していないオプションについては、-useデフォルト値。これらのデフォルトを変更すると、既存のAntスクリプトが破損します。
文字列またはテキスト要素のプロパティを展開する場合、未定義のプロパティはエラーとして発生しませんが、展開されていない参照として残されます(例${unassigned.property})。
Antの障害処理ルールは限られています。
遅延プロパティ評価はサポートされたとえば、Antcontribループ内で作業している場合、反復の一部である可能性のあるサブ値についてプロパティを再評価することはできません。(一部のサードパーティ拡張機能は回避策を容易にします。AntXtrasフロー制御タスクセットはループのカーソル再定義を提供します。)
makefileでは、あるファイルタイプを別のファイルタイプから作成するためのルールは、makefile内にインラインで書き込むことができます。たとえば、ルールを使用して別のツールを実行することにより、ドキュメントを他の形式に変換できます。Antで同様のタスクを作成するのはもっと複雑です。同じタイプの機能を処理するには、別のタスクをJavaで記述し、Antビルドファイルに含める必要がただし、この分離により、さまざまなプラットフォームでタスクが実行される方法の詳細の一部を非表示にすることで、Antスクリプトの可読性を高めることができます。
不足している機能の多くを提供するサードパーティのAnt拡張機能(antlibsと呼ばれる)が存在します。また、Eclipse 統合開発環境(IDE)はAntスクリプトをビルドして実行できますが、NetBeansIDEは内部ビルドシステムにAntを使用します。これらのIDEはどちらも非常に人気のある開発プラットフォームであるため、Antの使用を大幅に簡素化できます。(ボーナスとして、NetBeansによって生成されたAntスクリプトは、そのIDEの外部でスタンドアロンスクリプトとして使用できます。)

も参照してください
ビルド自動化
ビルド自動化ソフトウェアのリスト
Apache Jelly、XMLを実行可能コードに変換するためのツール
Apacheのアイビー、アリ、アリのサブプロジェクトと緊密に統合され、依存関係管理
Apache Maven、主にJava用のプロジェクト管理およびビルド自動化ツール
Nant、Javaではなく.NETFramework環境を対象としたAntのようなツール
Gradle、GroovyでビルドされたJVMビルドツール

参考文献
^ 「ApacheAntプロジェクトニュース」。
^ 「なぜそれをAntと呼ぶのですか?– Apache AntFAQ」。
^ ピータードナルド。「ミュルミドーン:Ant2.0提案」。
^ マクニール、コナー。「Ant開発の初期の歴史」。
^ ワイリー(2002)。エクストリームプログラミング用のJavaツール。NS。76。
^ 「WOProject-Ant– WOProject / WOLips –Confluence」。
^ 「Ant-Contrib」。
^ 「反貢献タスク」。
^ “ant-contrib.unkrig.de”。
^ 「Antタスクの概要」。
^ ApacheAntマニュアル。セクション「システム要件」。

参考文献
Loughran、Steve; ハッチャー、エリックAnt in Action(第2版)。マニング出版物。NS。600. ISBN 978-1-932394-80-1。
ホルツナー、スティーブンAnt –決定的なガイド(第2版)。オライリーメディア。NS。334. ISBN 978-0-596-00609-9。
ムーディー、マシューPro Apache Ant(第1版)。押して頁 360。ISBN 978-1-59059-559-6。
ベル、アレクシスT.ANT Javaノート:Java ANTビルドツールの高速イントロガイド(第1版)。Virtualbookworm.comPublishing。NS。268. ISBN 978-1-58939-738-5。
ハッチャー、エリック; Loughran、Steve。Antを使用したJava開発(第1版)。マニング出版物。頁 672。ISBN 978-1-930110-58-8。
ニーマイヤー、グレン; ポテト、ジェレミーAntを使用したエクストリームプログラミング:JSP、EJB、XSLT、XDoclet、およびJUnitを使用したJavaアプリケーションの構築とデプロイ(第1版)。SAMSパブリッシング。NS。456. ISBN 978-0-672-32562-5。
ウィリアムソン、アランAnt –開発者ハンドブック(第1版)。SAMSパブリッシング。NS。456. ISBN 978-0-672-32426-0。
マツケ、ベルント。ANT:実際のJavaビルドツール(第1版)。チャールズリバーメディア。頁 280。ISBN 978-1-58450-248-7。

外部リンク
ウィキブックスは、のトピックに関する本を持っている:Apache Antをします
公式サイト
image"