web-dev-qa-db-ja.com

MavenリポジトリにNexusまたはArtifactoryを使用する必要がありますか?

大規模なビルドプロセス(> 100モジュール)にMavenを使用しています。外部依存関係をソース管理に保存し、それを使用してローカルリポジトリを更新しています。

ただし、中央にキャッシュできるローカルリポジトリに移行する準備ができているため、すべてのサードパーティを積極的にダウンロードする必要はありません(ただし、ローカルリポジトリを取得できます)。さらに、開発者が世界を構築する必要がないように、ナイトリービルドから内部ビルドアーティファクトを公開したいと思います。

NexusとArtifactoryを検討しています。一方を他方より好む理由は何ですか?他に検討すべきものはありますか?

115
John Stauffer

Artifactoryについては知りませんが、Nexusを使用する理由は次のとおりです。

  • デッドシンプルインストール(および1.2以降、デッドシンプルアップグレード)
  • 非常に優れたWeb UI
  • メンテナンスが簡単で、管理オーバーヘッドがほとんどありません
  • 最近インストールされた、破損したアーティファクトとエラーのRSSフィードを提供します
  • 複数のリポジトリをグループ化できるため、複数のソースをミラーリングできますが、settings.xmlには1つまたは2つのエントリしか必要ありません。
  • Mavenからのデプロイはそのままで機能します(WebDAVハックなどは不要です)。
  • それは無料です
  • アクセスパスをリダイレクトできます(つまり、一部の破損したpom.xmlには「xxx」から「a.b.c」が必要です)。 POMにパッチを適用する代わりに、Nexusのバグを修正し、アーティファクトが実際に存在する場所にリクエストをリダイレクトできます。
73
Aaron Digulla

mvn deploy」からバイナリを保存することだけを話せば、両方ともうまくいくと確信しています。

途中ですべてのアップグレードでArtifactoryを非常に広範囲に使用します。多くのプロジェクト、多数のスナップショットが展開され、外部リポジトリがプロキシされました。単一の問題ではありません。他の人がどのようにDBやインデックス作成などの問題を経験しているのかを説明するのは難しいと思います。そのようなことは私たちには起こりませんでした。また、Artifactoryでは、データをディスクに保存し、メタデータの保存にのみDBを使用できます。これは非常に柔軟です( 詳細はこちら )。

これらのアプリケーションを非常に異なるものにしているのは、他のビルドツールや技術との統合に対するアプローチです。 NexusとSonatypeは、Mavenとm2Eclipseでほぼロックされています。彼らは他のものを無視し、ごく最近、独自のプロプライエタリなハドソン統合に取り組み始めました( Maven 3 webinar を参照)。 EDIT:これは2017年の時点ではもはや当てはまりません。Nexusは 他のビルドツールのより大きなサポート編集の終了

Artifactoryは素晴らしい Hudson、TeamCity、Bambooの統合 、および Gradle / Ivy のサポートを提供します。したがって、Sonatypeの「コンフォートゾーン」(Maven、m2Eclipse)から出るとNexusは何も提供しませんが、Artifactoryはすべての主要なビルドツールを受け入れ、コラボレーションします。

実際、「mvn deploy」ではなく、ジョブが終了したときにHudsonからビルドアーティファクトをデプロイできることは大きな違いです。ArtifactoryHudsonプラグインは、すべてのアーティファクトのアトミックなデプロイを行います一度に、ビルドジョブが正常に終了したときのみ。 「mvn deploy」は各モジュールの後に実行され、ビルドジョブが途中で失敗した場合に成果物の部分セットをデプロイできます。ジョブの完了時にビルドサーバーからではなく、モジュールの完了時にMavenからデプロイするのは、本当に悪いことです。

ご覧のとおり、Artifactoryは「ボックスの外側」を考え、Nexusは「ボックスの内側」を考え、MavenとMavenアーティファクトのみを考慮します。

Artifactoryをよりアクセスしやすくするものは、 クラウドベースのArtifactory Onlineソリューション です。月に約80ドルで、独自のArtifactoryインスタンスがあり、サーバーを専用にする必要はありません。

Artifactoryには シンプルで簡単なREST API があり、Nexusでの動作がわかりません。EditNexus REST API もあり、これも簡単に使用できます。

要約すると、Mavenアーティファクトの基本的なストレージについては、両方とも問題ないと思います。 しかし、Nexusが厳密に「Mavenリポジトリマネージャー」であるのを止める一方、Artifactoryは、ビルドツールやCIサーバーからのあらゆる種類のバイナリの一般的な「バイナリストレージ」であり続けています。

115
Evgeny Goldin

Artifactoryは、両方ファイルシステムとデータベースストレージのバックエンドをサポートします。ストレージはチェックサムに基づいており、同じバイナリがレポに何​​回出現しても、一度だけ保存されるため、Artifactoryのストレージ効率が向上します。このアーキテクチャにより、移動とコピーも非常に安価です(Nexusでは、移動/コピーにRESTはありません-ファイルシステム上でアイテムを移動してから、レポで修正アクションを実行する必要がありますコンテンツが変更されたことを知っています)。

別の重要な差別化要因は、ArtifactoryがHudsonおよびTeamCityと独自に統合して、デプロイされたアーティファクト、解決された依存関係、ビルド実行に関連する環境データに関する情報をキャプチャすることです。

27
Yoav Landman

Artifactoryはアーティファクトをデータベースに保存します。つまり、何か問題が発生した場合、すべてのアーティファクトが失われます。 Nexusは貴重なアーティファクトにフラットファイルを使用するため、すべてが失われることを心配する必要はありません。

22
Brian Fox

いずれかの「Pro」機能(ステージングリポジトリ、アーティファクトプロモーション、NuGetなど)が必要な場合は、Webサイトに表示されるさまざまな価格設定モデルを検討する必要があります。

要約すれば:

  • Artifactory Pro
    • あなたはサーバーごとに支払います
    • サービス時間の延長に対してより多く支払うことができます
  • Nexus Pro
    • 支払いは1シートあたり、つまりアーティファクトをダウンロードする開発者の数
    • サポートサービスは、お支払い額に関係なく、Mon-Fri 0800-2000 ETのみです。

Nexus Proは、ユーザー数に関係なく、Artifactoryの年間7,450ドルの「Silver Value Pack」とほぼ同等のサポートサービスを提供します。

年間7,450ドルで、約67枚のNexus Proシートを購入できます(1〜50ドルで108ドル、残りは120ドル)。

Nexus Proは、価格とサポートだけで67ユーザーに達するまで意味があり、その時点でArtifactoryがより安価なオプションになります。

すべてのサポートを社内で行っている場合。ただし、その魔法のポイントは約23人のユーザーです(Artifactoryの最も基本的なサポートサービスは年間2,750ドルです)。

9
RCross

Artifactory 2とNexus 1.3について最近いくつかの研究を行いました。私が見つけた主な違いをここにリストします:

  • ArtifactoryはメタデータとオプションでファイルをDBに保存し、Nexusはファイルシステムに直接書き込みます。長所があります。と短所。各アプローチに対して。 DBはトランザクションをサポートしていますが、FSに保存されているファイルには直接アクセスできます。
  • Artifactoryには、特にディスク容量に関して高いシステム要件があります。
  • ArtifactoryはLDAPをサポートしていますが、Nexusは有料版でのみサポートしています。一方、Nexus用の無料のLDAPプラグインはGoogleコードで利用できます。

最も完全な比較: http://binary-repositories-comparison.github.io/

8
Sergey

あなたはArtifactoryを使用する必要がありますその最新バージョンは本当のジャンプでしたあなたはリポジトリを増分バックアップすることができます、つまりあなたはすべてのアーティファクトを保存して維持することができます新しいバージョン2.0をリリース

7
Tal

学習者の観点からは、この2つの間にいくつかの特定の違いがあることに注意してください。

  1. Sonatype .warデプロイメントは、Tomcatの下で実行されますが、現時点ではJbossアプリケーションサーバーでサポートされていません。
  2. 現在、SonatypeはAmazon Machine Image(AMI)を提供していないので、すぐに立ち上がってテストできます。
  3. Artifactory AMIはBitnamiによって提供され、立ち上がるのにほんの数分、設定するのにさらに数分かかります。おそらく、達成しようとしているものに応じて数十分かかります。
  4. Artifactoryは、クラウドでArtifactoryのSaaSバージョンを提供しているため、インフラストラクチャではなく、物事を成し遂げることに集中できます。
  5. Nexusの経験はありませんが、少なくとも最初はArtifactoryが非常に直感的で設定が簡単であることがわかりました。
  6. 追加-熟練したプロにとっては問題ないかもしれないArtifactory User Guideが、詳細な説明については少し明るいことに注意してください。たとえば、RedHatのJboss EAP Enterprise Repoのように、最初に解凍してリポジトリを追加します。すべてうまくいきますが、インポートされたアーティファクトを表示しようとすると、アーティファクトリーはアーティファクトを報告しませんか?エラーや警告はありませんので、説明を探しています。これは正常ですか? docoの簡単な説明は、すぐに正しい方向を示すことができます。良い貢献者として、他のスターターの利益のためにこれらのコメントをプロジェクトに追加しています。
5
user3175893

すべての政治/宗教は別として、ライセンスは一部の組織に違いをもたらします。

ネクサスは GPL 今 AGPLv3 そして今 Eclipse Public License(EPL)

工房は Apacheライセンス LGPLv 製品のバージョン2.1の時点でライセンスされています。

また、比較のために Archiva を検討することもできます。 Apache 2.0のライセンスです。

3
Zac Thompson

Nexusの使用量は増加している一方、Artifcatoryの使用量はほぼ横ばいです。

enter image description here

ここから写真が撮影されます http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/

マトリックス比較もあります http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix

1
rofrol