2009-03-29 1 views
5

私はAntが使われていることを理解しようとしてきましたが、まだそれは得られません。Antの使い方は?

Antが使用されているユースケースを教えてもらえますか?Antが有用な理由と、それをどのように使えるのか見てみましょうか?

私はEclipseでJava開発を行っています。サーブレットとGoogle Web Toolkitを使い始めています。

+1

効果的にその質問に対する答えは、直接この質問に答えることでhttp://stackoverflow.com/questions/610732/what-is-build-automation-software-for-example-ant –

+0

の複製(。 ) –

答えて

17

Antはビルドツールです。たとえば、Eclipseワークスペースにいくつかのプロジェクトがあります。これらのプロジェクトはすべて、より大きなアプリケーションの一部です。依存関係を含むjarファイルにすべてを組み込むには、すべてのプロジェクトを選択してjarファイルとして書き出すことができますが、それはやや面倒です。

Antは拡張可能なソリューションです。ビルドプロセスはXMLで定義し、antはこのレシピに従ってJavaファイルをコンパイルします。

Antはビルド以上のこともできます。私は、デプロイメントの仕組みがDebianパッケージで独自のリポジトリにある会社で働いていました。 jarファイルをビルドし、Debianパッケージにメタデータファイルを配置し、それらをリポジトリに入れ、リポジトリマニフェストを再生成するAntスクリプトを用意しました。

Javaと同様に、Antに習熟する前に多くの設定が必要ですが、いくつかの基本的なチュートリアルでは、自分が何を得ているのかを理解する必要があります。

4

Antは、ビルドツールのように、コードを構築するための繰り返しタスクを自動化するために使用されます。

毎回手動でjavacを実行するのではなく、Antスクリプトにコマンドを入力し、antを実行するとjavacが実行されます。アリと

私の典型的なビルドプロセスはこのような何かを行く:TETS

  • 上のソース
  • 実行javacの上

    • 実行javacは、ソース上のCoberturaの計測を実行します(これはコードカバレッジのためであります)
    • ジャーアップソースからクラス
    • ジャーアップCoberturaのインストルメントクラスU
    • ジャーアップNITテストクラス
    • 実行Checkstyleは、PMD、警告
    • を見つけるために、ソース上のFindBugsは、それらのコードカバレッジ

    を取得するために、Coberturaの経由でユニットテストを実行するので、それは私がそれぞれに行っている8つのステップであります私が "アリ"を走らせることで簡単にできることを構築する。

  • 2

    AntはXMLベースのmakeファイルです。

    EclipseのようなIDEを使用してコードをビルドしてパッケージ化している単一の開発者の場合、Antを使用すると多くのメリットはありません。

    チームでコードを共同作業する場合、大きなメリットがあります。クルーズコントロールやその他の継続的な統合機能を使用すると、大きな効果が得られます。 CCには、Ant build.xmlが必要です。

    0

    これはANTのドキュメントにあり、かなりうまく説明されています。

    なぜ別のビルドツールを すでに作り、gnumake、nmakeを、ジャム、そして 他の人がある場合には?これらのツールには、 のソフトウェアが複数のプラットフォームにまたがって開発されている場合、Antの元の著者 が存続できないという制限があります。 make-likeツールは本質的に シェルベースです: の依存関係のセットを評価し、 のコマンドを シェルで発行するコマンドとは異なります。つまり、 これらのツールを使用して簡単に拡張することができます。 であるOS用のプログラム。しかし、これはあなた自身がOSに制限する を意味するか、少なくとも Unixのようなあなたが作業しているOSタイプであることを意味します。

    メイクファイルも本質的に悪です。 時間のために彼らの仕事をしている人は誰でも恐怖のあるタブ に遭遇しました。 「 タブの前にスペースがあるので、私のコマンドは を実行していませんか? の元の作者が言ったアンタウェイ何度も。 Jam のようなツールはこれを大いに扱っていました。 でもまだ別のフォーマットがあります。 を使用して覚えておいてください。

    アリは異なります。シェルベースの コマンドで拡張されたモデル ではなく、Java クラスを使用してAntが拡張されています。シェルの コマンドを書く代わりに、構成ファイルは XMLベースであり、さまざまなタスクが実行されるターゲットツリー を呼び出します。各 タスクは、 が特定のタスク インターフェイスを実装するオブジェクトによって実行されます。確かに

    が、これは find . -name foo -exec rm {}ようなシェル コマンドを構築することができるという に固有のものである 表現力の一部を削除しますが、それはあなたのクロスプラットフォームである能力与えます - どこでも、どこでも を仕事にします。また、 シェルを実行する必要がある場合は、 コマンドを実行する必要があります。 を実行すると、 は で実行され、異なるコマンドが実行されます。

    関連する問題