4

Ivy、Maven、および Archiva について混乱しています。これらはすべて、同様の問題を解決しようとしているようです。

Ivy が Maven のような機能を Ant に後付けする (つまり、Ant + Ivy ~= Maven) と考えるのは正しいと思いますか? しかし、Archiva が (もしあれば) Ant + Ivy や Maven に何を追加するのかは不明です。いつ Ivy を使用するか (たとえば)、いつ Archiva を使用するか、また、組み合わせが意味をなすのはいつ (もしあれば) でしょうか?

背景: ある種の依存関係管理を導入し、アーティファクト アーカイブを構築する必要があります。ソースはクロス言語 (C++、Java、Scala、Ruby、Python の混合) であり、ビルド プロセスはクロスプラットフォーム (Linux、Windows、OSX、Android、iOS、QNX) です。やや複雑な既存の scons ベースのビルド システムがあります。理想的には、(たとえば) Maven に大規模に移行するのではなく、依存関係の管理とアーティファクトのアーカイブをこれに追加したいと考えています。

4

1 に答える 1

9

元々 Maven が Ant より優れていた大きな利点の 1 つは依存関係管理の容易さでしたが、Ivy がそのギャップに適合するようになったという点では正しいです。つまり、Ant+Ivy はビルドと依存関係に関して Maven と同様の機能を提供します。管理。

どちらも依存関係管理を提供するようになった今、大きな差別化要因の 1 つは、Maven が「設定より規約」を使用していることです。カスタムタスク/ビルドに対してより柔軟/強力であるため、Antを好む人もいれば、はるかに簡潔でシンプルであるためmavenを好む人もいます。

ビルドの複雑さによって異なります。基本的な Java ビルドがある場合は、pom ファイル (Maven ビルド フィルド) が非常に単純であるため、Maven の方が適している可能性がありますが、多くのカスタム固有のものを実行する必要がある場合は、最終的に Ant スクリプトを実行する必要があります (また、既に 1 つのシステムを配置している場合、必ずしもスワッピングの大きな利点があるとは限りません)。

Archiva は Ant+Ivy/Maven とは異なります。Archiva は、リポジトリ内のすべての JAR ファイルを簡単に管理するための UI を提供する Web アプリケーションです。一般に、ビルド チームがプロジェクト全体で使用されているすべての JAR を簡単に制御および監視するには、非常に便利です。Archiva を Maven と連携して使用して、中央の Maven リポジトリを管理します。

また、私の経験から、Nexus や Artifactory などの Archiva に代わるものがいくつかあることも注目に値します。Maven RepoにNexusまたはArtifactoryを使用していますか?

于 2011-05-20T13:55:12.783 に答える