Apache ANT チュートリアル: Ant ビルド ツールとは何ですか? 例

⚡ スマートサマリー

Apache ANTは Java XMLビルドファイルを通じてコン​​パイル、テスト、パッケージング、デプロイを自動化するビルドツール。この記事では、このツールについて説明します。 tracその歴史を網羅し、 Windows インストール、プロジェクト構造の説明、Mavenとの比較、 Gradle.

  • 🔨 コア定義: AntはAnother Neat Toolの略で、コマンドラインからソースコードを実行可能なアプリケーションに変換するツールです。
  • 📄 ビルドファイル: すべての命令は、慣例としてbuild.xmlという名前が付けられたXMLファイルに格納されており、追加のプログラミング言語は必要ありません。
  • 🧱 3つのノード構造: ビルドファイルは常にタスクをターゲットの中にネストし、ターゲットを単一のプロジェクト要素の中にネストします。
  • 🔗 依存関係の制御: depends属性はターゲットの順序を指定するため、コンパイルは常にjarファイルの前、そしてデプロイメントの前に実行されます。
  • ⚙️ 環境設定: インストールには、JDK、ANT_HOME環境変数、およびシステムパスに追加されたAntのbinフォルダが必要です。
  • 🆚 ツールの比較: Antは手続きの自由度を提供し、Mavenは依存関係管理で規約を強制し、 Gradle スクリプトによるビルドで両方を組み合わせる。
  • 🌍 携帯性の利点: ビルドは以下のように同じように実行されます Windows そしてLinuxならどこでも Java 仮想マシンが利用可能です。

Apache ANT チュートリアル

ビルドツールとは何ですか?

ビルド ツールは、プログラムの新しいバージョンを構築するために使用されるプログラミング ツールです。 任意のソース コードからの実行可能アプリケーションの作成を自動化します。

ビルドツールがない場合、開発者は変更があるたびに、ソースファイルをすべて手動でコンパイルし、リソースをコピーし、テストスイートを実行し、結果をパッケージ化する必要があります。ビルドツールはこれらの手順を一度記録し、すべてのマシンで同じように繰り返します。

アパッチアントとは?

アパッチアント   Javaビルド用のコマンドラインツール Java 純粋な移植性を備えたアプリケーション Java コード。開発者は、アジャイル原則とテスト駆動開発を採用して、ドキュメント生成などの反復的な開発タスクを自動化できます。Ant は、Another Neat Tool の頭文字をとったものです。

アパッチアント

図に示すように、Antはビルドファイルを読み込み、その中のターゲットの順序を解決し、アプリケーションのコンパイル、コピー、テスト、パッケージ化を行う個々のタスクを実行します。

Apache Ant Build ツールは何に使用されますか?

ビルドツールを使用する主な利点は以下のとおりです。

  • ビルドツールを使用すると、ソースコードのコンパイル、ソフトウェアテストの実行、ソフトウェア展開用のファイルの作成など、特定の反復作業を自動化できます。
  • ビルド ツールはほとんどの場合、グラフィカル ユーザー インターフェイスなしで実行されます。
  • ソースコードを実行可能なコードに変換するのに役立ちます。
  • 必要に応じてのみファイルを再コンパイルするオプションを提供します。
  • これにより、多数のファイルを比較的短時間でコンパイルすることが可能になります。
  • 広く普及している2つのビルドツール Java 開発者はApacheです 達人 そしてアリ。

Apache Ant の歴史

それでは、Apache Antビルドツールの歴史について学びましょう。

Apache Ant ツールからの重要な歴史的ランドマークを次に示します。

  • ジェームズ・ダンカン・デビッドソンは2000年7月にAntを制作した。
  • これは元々Tomcatを構築するために使用され、Tomcat配布キットに組み込まれた製品として提供されていました。
  • 2014年5月、Apache Antバージョン1.9.4がリリースされ、多くの高度な機能が追加されました。
  • 1.10.x系は2017年に開始され、現在も活発にメンテナンスされているブランチです。
  • バージョン1.10.17は2026年4月10日にリリースされ、最低限の要件があります。 Java 8 ランタイム。

Apache Antの特徴

Apache Antの主な機能は以下のとおりです。

  • これはオープンソースプロジェクトです。
  • 両方のプラットフォームでビルドを実行できます Windows およびUNIXまたはLinuxシステム。
  • 必要なのは JVMJVMが利用可能な場所であればどこでも動作するからです。
  • あらかじめ定義された幅広いタスクを提供します。
  • これは、ファイルをある場所から別の場所にコピーするのに役立ちます。
  • カスタムタスクを開発するためのインターフェースを提供します。
  • これにより、コマンドラインからビルドを呼び出すことができ、簡単に統合できます。 無料および商用の IDE.
  • これにより、バイナリをテストサーバーにデプロイできます。
  • 拡張可能なアーキテクチャを提供する。
  • リリース間での下位互換性を提供します。

Apache Ant をインストールして構成する方法 Windows

それでは、Apache Ant のインストール手順を学びましょう。 Windows.

すでにダウンロードしてインストールしていることを前提としています。 Java 開発キット お使いのコンピュータにJDK(JDK)をインストールしてください。JAVA_HOME環境変数がJDKがインストールされているフォルダに設定されていることを確認してください。Antをインストールするには、以下の手順に従ってください。

ステップ1) バイナリをダウンロードします。
からバイナリをダウンロードします https://ant.apache.org/bindownload.cgi

Apache Ant をインストールして構成する Windows

ステップ2) ファイルを解凍します。
このzipファイルをc:\folderなどの便利な場所に解凍するには、 WinZip, WinRAR, 7-Zipまたは、同様のツール。

Apache Ant をインストールして構成する Windows

ステップ3) 環境変数を作成します。
「ANT_HOME」という環境変数を作成し、その変数の値をAntフォルダの場所に設定します。

  1. 「このPC」アイコンを右クリックします。
  2. [プロパティ]をクリックします。

Apache Ant をインストールして構成する Windows

ステップ4) システム設定に移動します。
「システムの詳細設定」をクリックします。

Apache Ant をインストールして構成する Windows

ステップ5) システムのプロパティで、
「詳細設定」タブをクリックしてください。

Apache Ant をインストールして構成する Windows

ステップ6) 環境変数を見つけてください。
「環境変数…」ボタンをクリックしてください。

Apache Ant をインストールして構成する Windows

ステップ7) 新しい変数を作成します。
「新規」をクリックして新しいユーザー変数を作成します。

Apache Ant をインストールして構成する Windows

ステップ8) 変数の詳細を入力してください。
新しいユーザー変数の詳細を入力してください。

  1. 変数名として「ANT_HOME」と入力してください。
  2. 変数の値として、Antが解凍されたフォルダを入力してください。例:C:\apache-ant-1.10.17。
  3. 「OK」ボタンをクリックしてください。

Apache Ant をインストールして構成する Windows

ステップ9) 変数が作成されました。
「OK」ボタンをクリックしてください。

Apache Ant をインストールして構成する Windows

ステップ10) 画面を閉じます。
「OK」をクリックして画面を閉じます。

Apache Ant をインストールして構成する Windows

💡ヒント: ANT_HOMEはインストールフォルダ自体を指している必要があり、その中のbinフォルダを指してはいけません。次に以下を追加します。 %ANT_HOME%\bin Path変数に追加することで、antコマンドがどのディレクトリからでも認識されるようになります。

Ant のインストールが成功したかどうかは、以下のコマンドで確認できます。ping コマンドプロンプトで「ant -version」コマンドを実行します。

次の画面が表示されます。

Apache Ant をインストールして構成する Windows

Apache ANTの例

以下のビルドファイルは、helloという名前の単一のターゲットを定義しており、このターゲットはメッセージを表示します。project要素は名前とデフォルトターゲットを宣言しているため、コマンドラインでターゲットが指定されていない場合にAntが何を実行すればよいかを認識できます。

<?xml version="1.0"?>
<project name="HelloWorld" default="hello" basedir=".">

    <target name="hello">
        <echo>Hello, World</echo>
    </target>

</project>

このファイルを「build.xml」として保存し、次の2つの手順に従ってください。

  • コマンドプロンプトを開き、build.xmlファイルが格納されているディレクトリに移動します。
  • ラン ant helloまたは単に anthello がデフォルトのターゲットとして宣言されているためです。別のファイル名を使用するには、以下を実行します。 ant -f mybuild.xml hello.

出力:

Buildfile: C:\projects\demo\build.xml

hello:
     [echo] Hello, World

BUILD SUCCESSFUL
Total time: 0 seconds

ANTプロジェクトの構造

ANTプロジェクトの構造

ANTプロジェクトの構造

構造図に示すように、各ビルドには3つのノードが含まれます。

  • プロジェクト
  • Target
  • 仕事

プロジェクト

Apache ANT のビルド ファイル内のすべてはプロジェクトの下にあります。

属性:

  • 名前: プロジェクト名。
  • ベースディレクトリ: これは、すべてのパスが計算される基準となるディレクトリです。「basedir」プロパティを使用することで、このディレクトリを上書きできます。
  • デフォルト: このプロジェクトのデフォルトターゲットを定義するのに役立ちます。ターゲットが指定されていない場合、Ant はデフォルトのターゲットを実行します。

Target

ターゲットとは、ビルドプロセスにおいて特定の状態に到達するために定義された一連のタスクのことです。

属性:

  • 名前: 対象者の名前(必須)。
  • 説明: Descript標的のイオン。
  • 依存: この現在の目標が依存している目標はどれか。
  • 次の場合: ターゲットプロパティに値が設定されている場合にのみ、ターゲットを実行します。
  • 以下の場合を除き: プロパティ値が設定されていない場合にのみ、ターゲットを実行します。

タスク

タスクとは、実行可能なコードの断片のことです。タスクには複数の引数または属性があります。

タスクを作成するための一般的な方法パターンは次のとおりです。

<name attribute1="value" attribute2="value2"…/>

組み込みタスクを使用することも、独自のタスクを作成することもできます。以下の表は、ほぼすべてのタスクに表示されるタスクの一覧です。 Java ファイルを作成します。

仕事 目的 典型的な属性
echo コンソールにメッセージを表示する メッセージ
mkdir ディレクトリを作成する DIR
削除 ファイルまたはディレクトリを削除する ディレクトリ、空のディレクトリを含める
javac コンパイル Java ソースファイル srcdir、destdir、includeantruntime
クラスをjarアーカイブにパッケージ化する 宛先ファイル、ベースディレクトリ
copy 場所間でファイルをコピーする ファイル、ディレクトリ
ジュニ ユニットテストを実行する ハルトン障害、印刷概要

複数のbuild.xmlの完全な例 Targets

現実的なビルドファイルでは、複数のターゲットが連鎖的に実行されます。depends属性によって実行順序が保証されるため、Antは出力フォルダをクリーンアップし、ソースをコンパイルしてから、jarファイルをビルドします。

<?xml version="1.0"?>
<project name="DemoApp" default="jar" basedir=".">

    <!-- reusable values -->
    <property name="src.dir"   value="src"/>
    <property name="build.dir" value="build"/>

    <target name="clean" description="Remove previous output">
        <delete dir="${build.dir}"/>
    </target>

    <target name="compile" depends="clean" description="Compile sources">
        <mkdir dir="${build.dir}/classes"/>
        <javac srcdir="${src.dir}" destdir="${build.dir}/classes"
               includeantruntime="false"/>
    </target>

    <target name="jar" depends="compile" description="Package the jar">
        <mkdir dir="${build.dir}/jar"/>
        <jar destfile="${build.dir}/jar/DemoApp.jar"
             basedir="${build.dir}/classes">
            <manifest>
                <attribute name="Main-Class" value="com.guru99.Main"/>
            </manifest>
        </jar>
    </target>

</project>

出力:

Buildfile: C:\projects\DemoApp\build.xml

clean:
   [delete] Deleting directory C:\projects\DemoApp\build

compile:
    [mkdir] Created dir: C:\projects\DemoApp\build\classes
    [javac] Compiling 3 source files to C:\projects\DemoApp\build\classes

jar:
    [mkdir] Created dir: C:\projects\DemoApp\build\jar
      [jar] Building jar: C:\projects\DemoApp\build\jar\DemoApp.jar

BUILD SUCCESSFUL
Total time: 1 second

Apache Ant vs Maven vs Gradle

3つのビルドツールが主流 Java 生態系はそれぞれ異なり、どの程度の構造を導入すべきかについては、それぞれ異なる立場を取っている。

アパッチアント Apache Maven Gradle
ビルドスクリプト形式 XML XML Groovy またはKotlin DSL
アプローチ 手順型なので、すべてのステップを定義します。 宣言型、設定よりも規約を重視 スクリプト拡張機能を備えた宣言型
依存関係管理 組み込み機能ではなく、Apache Ivy経由で追加されました。 中央リポジトリを内蔵 組み込み済み、Maven互換
プロジェクトの構造 完全無料 固定標準レイアウト 慣例に基づいているが、上書き可能
インクリメンタルビルド 限定的 限定的 はい、ビルドキャッシュを使用すれば可能です。
学習曲線 XMLユーザーにとっては低レベル 穏健派 より急勾配で、DSLが必要
に最適 レガシープロジェクトと高度にカスタマイズされた構築 スタンダード Java プロジェクト(実績作品) 大型マルチモジュールおよび Android プロジェクト(実績作品)

Antは、ビルドが標準的なレイアウトに適合しない場合、または既存のプロジェクトが既に手書きのターゲットに依存している場合に、依然として実用的な選択肢となる。

Apache Ant の使用に関するベスト プラクティス

Apache Antを使用する際のベストプラクティスをいくつかご紹介します。

  • プロパティ ファイルを使用してビルドの番号付けを自動化する必要があります。
  • デフォルトプロパティファイルとビルドプロパティファイルを使用して、設定可能なビルドを実装します。これらのファイルには、コンパイラバージョンや最適化設定など、ビルドプロセスに必要なデータを定義するプロパティを保存できます。
  • ライブラリ プロパティ ファイルを使用して、事前に構築されたライブラリを再利用できます。
  • すべてのターゲットに説明属性を与えると、 ant -projecthelp ビルドの有用な概要を一覧表示します。
  • クリーンアップ対象は別の場所に保管し、ソースファイルも含まれているディレクトリは絶対に削除しないでください。

Apache Ant を使用する利点

Apache Antを使用するメリットは以下のとおりです。

  • Antはプラットフォームに依存しないため、ファイル区切り文字などのプラットフォーム固有のプロパティを管理するのに役立ちます。
  • Antでは、'touch'コマンドを使用してファイルの最終更新日時を変更するなど、プラットフォーム固有のタスクを実行できます。
  • Antスクリプトはプレーンテキストを使用して記述されます XMLしたがって、XMLに既に精通している方であれば、Antもすぐに習得できるでしょう。
  • Antは、あらかじめ定義されたタスクを多数提供しています。
  • 開発者向けのインターフェースを提供しますping カスタマイズされたタスク。
  • Antはコマンドラインから簡単に起動できるため、無料および商用のIDEとの統合が可能です。
  • 必要なのはJVMだけなので、JVMが利用可能な場所ならどこでも動作します。
  • Apache Ant は、ユーザーがソース コードにアクセスして複製できるオープンソース ライブラリです。
  • Apache Ant は、クロスプラットフォームのツールであり、 Java クラスパスとファイル ディレクトリ構造を手頃な方法で実現します。
  • Apache Ant は、次を使用して簡単に拡張できます。 Java および他のプログラミング言語。
  • Apache Antは、EJBのコンパイルやパッケージングなど、J2EE開発のための組み込みサポートを提供します。
  • 小規模な個人プロジェクトから、大規模なソフトウェアプロジェクトやウェブサイトまで、幅広く利用できます。

Antは、テストランナーや継続的インテグレーションサーバーと組み合わせて使用​​されることが多い。 JUnit テスト層の場合、 Jenkins スケジュールされたビルドの場合、 Apache Ant を使用する Selenium ブラウザテスト自動化用。ビルド中に生成されたレポートは、 ジャスパーレポート.

よくあるご質問

AntはAnother Neat Toolの頭文字をとった略語です。James Duncan Davidsonが2000年7月にTomcatのビルド作業中に作成し、Apache Softwareに寄贈されました。 Foundation.

いいえ、ただし Ant はデフォルトでは現在のディレクトリで build.xml を探します。コマンドラインで -f または -buildfile オプションを指定すれば、他のファイル名でも動作します。

それ単体では動作しません。Apache Ivyは依存関係解決機能を追加するコンパニオンプロジェクトであり、Mavenが使用するのと同じリポジトリから成果物をダウンロードできます。

Path変数にbinフォルダが含まれていないか、ANT_HOMEが間違ったディレクトリを指しています。変数を編集した後は、新しいコマンドプロンプトを開いてください。既存のウィンドウには古い値が保持されます。

はい、標準コンパイル、jar、およびテストターゲットの場合です。クラスパスエントリとincludeantruntime属性を確認してください。生成されたファイルではこれらが省略され、紛らわしい警告が表示されることがよくあります。

はい、レガシーを維持するため Java 既存のビルドを安価に移行できないシステム。新しいプロジェクトは通常、Maven または GradleAIツールは、より信頼性の高いフレームワークも提供します。