21

私のわずかな経験から、Ant はビルド ツールとしてしか使用していません。他に優れたプロジェクトはありますか?その理由は?

4

9 に答える 9

23

メイヴン

ほとんどの一般的なタスクでは、複雑な build.xml を記述する必要がないため、ant よりもはるかに優れています。maven には非常に優れたデフォルトがあり、構成よりもすべて慣習的です。

また、ライブラリの大きな中央リポジトリがあり、「最新の安定したコモンズを使用する」などのように構成するのは非常に簡単です。その後、Maven は最新の安定バージョンをダウンロードし (jar を VCS にチェックインする必要はありません)、新しいアップストリームの安定バージョンがリリースされると、それもダウンロードします。もちろん、必要に応じて特定のバージョンにロックするのも簡単です。

また、Netbeans と Eclipse (m2eclipse プラグイン) の両方とも適切に統合されているため、IDE は pom.xml ファイルで宣言した設定 (依存関係を含む) を尊重します。

Maven にはいくつかの欠点もあります。一部のプラグインは文書化が不十分であり、両方の IDE との統合は実際には完全ではなく、さまざまな方法でエラー メッセージが理解しにくい場合があります。

于 2008-10-11T14:31:50.300 に答える
11

Ant は依然として主要なプレーヤーです。私の経験では、それが支配的です。さらに、Ivy を使用すると、Maven の長所の一部を処理できます。IMO によると、Ant は他のツールのフレームワークになります。XML は硬直的すぎます (以下のリンクを参照)。

Maven 2 も主要なプレーヤーです。私はそれをとても気に入っていて、Maven 1 に当てはまった批判に憤慨している人を知っています (それは長い道のりを歩んできました)。

Groovy は Ant で構築されているため、ビルド スペースでいくつかの優れた機能を提供しています。Gant は Grails で使用されますが、Gradle に組み込むことができます。これらはJavaにも使用できます。

私自身のブログを宣伝するリスクがあるので、Gant と Gradle についての記事をここに示します。これは、彼らの将来に関する現在の議論へのリンクです。

于 2008-10-11T16:11:56.353 に答える
5

企業では、アリは依然として塹壕プレーヤーです。依存関係はすぐには変わりません。かなり新しいバージョンの依存 jar に移行し続けるオープン ソース プロジェクトとは異なり、ほとんどの企業は依存関係をあまり速く変更しないようにしています。それを考えると、Maven の利点は ant に比べてそれほど多くはありません。

繰り返しになりますが、maven の機能の一部が必要な場合は、依存関係機能用に ant の人々が ivy ( http://ant.apache.org/ivy/ ) を持っています。

ant を使い続けたい場合は、「ANT IN ACTION」第 2 版を手に入れて、ant を最高の生産性で使用できるようにしてください。

幸運を、

于 2008-10-11T18:24:18.410 に答える
4

Gantもあります。Gant は Groovy + Ant です。タスクをプレーンな Groovy で記述でき、任意の Ant タスクを呼び出すこともできます。あなたがJavaショップで、あなたが持っているantのスキルを再利用したいが、XMLが嫌いなら、Gantをお勧めします.Gantはセットアップが非常に簡単で、antに埋め込むことができます(また、antからgantを呼び出すこともできます).

于 2008-10-11T22:16:55.210 に答える
4

Ant の依存関係を管理するIvyを好む人もいるので、Ant のバックグラウンドを持つ人は気に入ると思います。

その他は Builder が好きです。これはJRubyのものなので、同じプロジェクトでRubyとJavaを両立できたら面白いと思います。

個人的には、Mavenを使用しています。デフォルトの pom.xml ファイルを作成するのは簡単で、すべてのビルド コマンドを自由に使用できます。また、プロジェクトが拡大しても、プラグインを実行して依存関係を追加するためのインフラストラクチャは既に整っています。

于 2008-10-11T14:41:34.630 に答える
1

SCons、構成ファイルがすべて Python スクリプトだけのビルド ツールです。これは、Python や同様のスクリプト言語を知っている人なら誰にとっても魅力的です。SCons は Java だけでなく、C/C++ やその他の言語でもうまく動作するように設計されており、これまで非常に満足してきました。

SCons ファイルは Python で記述されているため、何か特別なことを行う必要がある場合は、任意の Python コードを記述できます。ただし、Python にまったく慣れていない場合は、Ant などを拡張して目的を達成しようとするよりも、学習曲線が高くなる可能性があります。

于 2008-10-11T15:05:24.803 に答える
1

Maven2 は新進気鋭のようです。

ただし、私たちのプロジェクトでは、可能な限り ant に移行しています。

Maven2 を思い通りにするにはかなりの知識が必要であり、Maven2 のバージョンではクラスパスの処理が異なるようです。

そして、引き込まれる可能性のある依存関係の依存関係に含まれるすべてのライセンスを確認するのは面倒です。

また、依存関係を自分で把握する必要があるため、起動時間が遅くなる可能性がありますが、少なくとも読みやすいです。ここでは魔法は起こりません:)

Maven を使用する場合は、Nexus などの内部リポジトリを検討してください。そうすれば、一部のライブラリがネットから離れることを決定した場合でも、ソフトウェアが死んでいるわけではありません*。

*maven1でやけどを負いました。ibiblio maven1 リポジトリはリダイレクトしますが、maven1 はリダイレクトをサポートしていません :(

于 2008-10-11T16:00:27.657 に答える
0

適切なツールを検討する際は、要件から始めることをお勧めします。各プロジェクトは異なります。使用するツールは、ファッションではなく問題のスペースを反映する必要があります。

そうは言っても、一般的に使用する場合、ant はおそらく Java アプリケーションを構築するための最も一般的なツールであると思います。多くの場合、依存関係を管理するための他のツールと一緒に効果的に使用されますが、ここでも問題なく解決策に飛びつきます。

非常に良いニュースは、プロセスが優れている場合、ビルド ツールを切り替えることはかなり簡単なプロセスであるということです。つまり、目前の問題に合わせてスケーリングされた優れたプロセスから始めてください。

于 2008-10-11T14:49:11.013 に答える
0

いくつかの優れた Java make ユーティリティは何ですか?で既にいくつかの回答を見つけることができます。.

于 2008-10-11T16:07:18.687 に答える