web-dev-qa-db-ja.com

AntはまだJavaビルドの「主流」にありますか?

開発者IDEでコンパイルされたクラスを単純に不快にするバッチコマンドファイル(windows .bat)を、より包括的なAntビルド(つまり、CVSから取得、クリーンコンパイル、jar、アーカイブ、電子メールなど)で徐々に置き換えています。

私はAntの学習(および問題のデバッグ)に多くの時間を費やしてきたので、これらのタスクに使用するのが最も快適です。しかし、Antは、私が最初に学習を始めたときと同じようにまだ広く使用されているのか、または「世界が新しいものに(そしておそらくより滑らかに)移行したのか」と思います。 (たとえば、Mavenビルドのものが配布されているのを目にするようになりました。たとえば、これを使ったことはありません。)

この質問の実用的なインポートはAntを学ぶように新しい開発者にプッシュするかどうかか、またはビルドのために他の何かを学ぶべきかどうかです。

私は決してトレンドに精通しているわけではないので、他のJava開発者が最高のビルドツールであると思うこと、および新しい開発者が学ぶべきだと思うことを聞いていただければ幸いです。

14
Sam Goldberg

Mavenが私がこれまで見てきた最も重要なプロジェクトを引き継いだように見えるという点で、私はここの他の人々に同意します。

Antは非常に柔軟性がありますが、ビルドファイルは標準化されていないため、新しいプロジェクトまたは会社に移動すると、ターゲットの名前が異なり、ファイルの構造が異なり、ターゲット間の依存関係が確立される場合と確立されない場合があります。

Mavenを使用すると、SCMシステムでバイナリ依存関係(私はjarについて話している)を持ち歩く必要がないという利点もあります。他の多くのすばらしいJavaツールはMaven POMファイルの読み取り方法(標準化の利点)を知っているため、IDEなどのツールはMavenプロジェクトをすばやくセットアップでき、Jenkinsなどのビルドツールは簡単にできますMavenビルドを実行します。

23
RonU

私はAntとMavenを使用しています。私の経験では、Mavenにはvery Antよりも強いエッジがあります。

  • 過去2〜3年目にしたすべてのプロジェクトは、Mavenを使用しているようです。約3年前に、当時使用されていたMavenバージョン(2.0.something)は非常に信頼性が低く、バグが多いように思えたので、これは不思議に思いました。しかし、ある時点(2.1または2.2を思い出せない)でmavenは信頼性が高くなり、しばらく使った後、私の考えを反対に変えました。さて、メイベンよりもアリを好む人に出会って驚いた方がいいです。

Mavenについてはあまり肯定的ではありませんが、そのドキュメントに関する私の経験は、今のところそれほど大きくありませんでした。 Mavenよりもドキュメントが悪い製品を見たことがありますが、どれを覚えているかわかりません(一部の古いCSVライブラリiirc)。

11
gnat

数年前からMavenを使用しています。 (AntがBeanShellをサポートするのと同じように)Antスクリプトをサポートしているため、Antの知識がまだ役立つ場合があります。 Mavenははるかに強力ですが、追加のインフラストラクチャ要件があります(複数のプロジェクト間でコンポーネントを共有する場合は、ArtifactoryまたはNexusサーバーでビルドをホストする必要があります)。また、Antとはかなり異なるため、既存の知識の多くを活用することはできません。

3
TMN

Ant自体は水中で死んでいると思います。すべてのクラスパスの依存関係を手動で指定する必要があります(設定によって異なります)は、あまりにも手動で行う必要があり、エラーが発生しにくくなります。 AntをIvyなどの依存関係管理ツールと一緒に使用すると、Antの能力が維持され、依存関係を手動で管理する必要がなくなります。

Mavenと比較した場合のAntのもう1つの問題は、他の回答で言及されている標準化の欠如です。プロジェクトからプロジェクトへ、またはジョブからジョブへと移動するとき、私が見つける最も厄介なことの1つは、さまざまなAntファイルの新しい標準を学ぶ必要があることです。 Mavenの目的 convention over configuration は、2つの異なるプロジェクトが非常に類似した構造を持ち、Antを使用するよりもプロジェクト間の移行がはるかに容易になることを意味します。

Antがまだ主流であるかどうかについては、作業している開発環境によって異なります。プロジェクトが小規模な企業や新興企業の場合、Mavenが自然な選択であり、時間がかかると思いますArtifactoryなどのインフラストラクチャに投資します。ただし、大企業は長年、多額の資金をAntインフラストラクチャ(構成、グローバルビルドファイルなど)に投資しているため、多額の資金を投資したテクノロジから離れることにあまり熱心ではありません。

1
Richard

Mavenは何年もの間上昇してきましたが、今はそれを学ぶ必要があります。物事は常に変化し、Antがその立場を失っていることを知ることは悪いことではありません。

Mavenは短期間で成功するかもしれませんが、それが私たちの仕事をより簡単にするなら、学ぶために時間を費やす価値があります。

0
Jon Shanks