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


119

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

ただし、中央をキャッシュできるローカルリポジトリに卒業する準備ができているため、すべてのサードパーティを事前にダウンロードする必要はありません(ただし、ローカルリポジトリからプルすることはできます)。さらに、開発者が世界を構築する必要がないように、夜間のビルドから内部ビルドアーティファクトを公開したいと考えています。

NexusとArtifactoryを検討しています。どちらか一方を優先する理由は何ですか?他に検討すべき点はありますか?


2
あなたのリンクはあまり客観的ではありません、これが反対側の応答ブログですblogs.jfrog.org/2009/01/contrasting-artifactory-and-nexus.html
user58773

Apacheやnginxのようなプレーンなhttpサーバーを検討する必要があると思います。それらは「ボーリングテクノロジー」です(mcfunley.com/choose-boring-technology)。
Johan Walles、2015年

5
@JohanWalles:このコンテキストでは、「不便で生産性を低下させるテクノロジー」に似ています。
Priidu Neemre 16

回答:


74

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

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

3
Nexusには、スナップショットを削除できる定期的にスケジュールされたジョブを作成するための優れたWeb UIがあります。Artifactoryには(まだ)これはありません。
HDave

118

mvn deploy」からのバイナリの保存についてのみ話している場合は、どちらもうまくいくと思います。

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

これらのアプリケーションが大きく異なるのは、他のビルドツールやテクノロジーとの統合に対するアプローチです。NexusとSonatypeは、Mavenとm2eclipseでほぼロックされています。彼らは何も無視し、つい最近、独自のHudson統合に取り組み始めました(Maven 3ウェビナーを参照)。 編集: 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ソリューションです。1か月あたり約80ドルで、独自のArtifactoryインスタンスがあり、サーバーを専用にする必要はありません。

Artifactoryにはシンプルで単純なREST APIがありますが、Nexusでどのように機能するかはわかりません。 Edit Nexusには、簡単に使用できるREST APIもあります。

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


9
すみませんが、FUDの匂いがします。Nexusは確かに「Mavenとm2eclipseにロック」されておらず、Jenkins、TeamCity、Bambooと完全に統合されています。シンプルでわかりやすいREST APIがあります。すべてのNexus機能はRESTエンドポイントとして公開されています。Nexusが「MavenとMavenのアーティファクトのみを気にする」と言っているのは誤りです。.Net(NuGet)、Gradle / Ivy、OSGIもサポートし、Yum RPMリポジトリをホストできます。アーティファクトストレージに関しては、tar、zip、rar、parが標準のJavaアーカイブタイプとともに含まれています。
RCross 2014年

25
おい、その応答は4年前に投稿されました:)それはもはやMavenについてではありませんか?じゃあね!
Evgeny Goldin 2014年

3
@EvgenyGoldin彼のコメントの関連性を低くしません(FUDパートを除く^^)。
OddDev 2016

4
この投稿は7年前であり、REST APIは多かれ少なかれツールで必須であるので、Nexusはまだこれに不満があるようです。Nexus3の残りのAPIを使用すると、基本的にRPCです。あなたがしたいことを実行するには、小さなスクリプトをアップロードする必要があります。一方、Artifactoryは、優れたドキュメントを備えたよく考えられたAPIを公開しているようです。
thecoshman 2017

27

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

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


1
ArtifactoryはS3永続性もサポートしています。
Tim Ferrell

@TimFerrell、真実ではないが、私が一般的に働いているほとんどの店にとって法外に高価な価格で。
Sander Verhagen 2018

21

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


3
それが私たちにとっても違いを生んだものです。私はそれがほとんどパラノイアであると想像しますが、いつでもシステムを検査するのが簡単になることを知って安心します。
Jeremy Huiskamp、2009年

4
このため、ArtifactoryからNexusに切り替える予定です。
Kariem 2009年

2
腐敗の別の犠牲者からの+1。それ以来ArchivaとNexusを使っていますが、どちらもかなりしっかりしているようです。
SimonJ 2010年

73
この回答は古くなっています。Artifactoryは、ファイルシステムにオブジェクトを格納するように構成できるようになりました。
M.ダドリー

37
私がArtifactoryを使用している限り、実際のアーティファクトに対するファイルシステムサポートがありました。しかし、メインデータベースサーバーが複製およびバックアップされているため、とにかくデータベースを使用しています。ファイルシステムストレージがデータベースよりも本質的に安全であることはわかりません。Nexusに対しては何もせず、これを片付けようとしているだけです。
ジョシュアデイビス

9

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

要約すれば:

  • Artifactory Pro
    • サーバーごとに支払う
    • サービス時間の増加に対して追加料金を支払うことができます
  • Nexus Pro
    • シートごとに支払う、つまり、アーティファクトをダウンロードする開発者の数
    • サポートサービスは、お支払い内容に関係なく、月〜金0800〜2000 ETのみです。

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

年間7,450ドルで約67のNexus Proシートが購入されます(1-50が$ 108、残りが$ 120)。

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

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


8

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

  • ArtifactoryはメタデータとオプションでファイルをDBに保存し、Nexusはファイルシステムに直接書き込みます。長所があります。と短所。それぞれのアプローチについて。DBはトランザクションをサポートしますが、FSでは、保存されたファイルに直接アクセスできます。
  • Artifactoryは、特にディスク領域に関して、より高いシステム要件を持っています。
  • ArtifactoryはLDAPをサポートしていますが、Nexusは有料バージョンでのみサポートしています。一方、Nexus用の無料のLDAPプラグインはGoogleコードで入手できます。

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


実際、ArtifactoryはGPLになりました。
ブライアンフォックス

5
Nexus OSSは現在、いくつかのリリースでLdapをサポートしています。
Brian Fox

1
LDAP グループのアーティファクトリー
Steven

1
2015年7月の更新:Codehausは現在死んでいるので、マトリックスはbinary-repositories-comparison.github.ioに
JBaruch

7

あなたはArtifactoryを使用する必要がありますその最新バージョンは本当のジャンプでしたリポジトリを段階的にバックアップできます。つまり、すべてのアーティファクトを保存して維持することができ、使いやすいWeb UIがあり、セットアップが非常に簡単です。新しいバージョン2.0


5

学習者の視点から、私は2つの特定の違いに注意します。

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

3

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

NexusはGPLになり、AGPLv3Eclipse Public License(EPL)になりました

Artifactoryは、Apacheライセンスの LGPLv3であり、製品のバージョン2.1の時点でライセンスされています。

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


5
なぜ、これは荒らしです。LinuxがGPLであるという事実は、組織がそれを使用することを思いとどまらせますか?ツールをプログラムに組み込むことと使用することには違いがあります。
ティム・オブライエン

1
荒らしをするつもりはなかったが、あなたの指摘に感謝する。テキストから最上級を削除しました。
ザックトンプソン、

4
@tobrien:FWIW、一部の組織(私のものを含む)は、GPL化されたソフトウェアをいつ使用するかについて非常に慎重であり、法的な暴露を恐れています。私はそのような政策の(欠如)知恵については議論したくありません-私たちは完全に同意するのではないかと思います。それを指摘するだけの人もいます。
ザックトンプソン、

1
2.1の時点で、ArtifactoryはとにかくLGPLです。
ブライアンフォックス

1
@Zac @ user145026コードをNexusライブラリにリンクしていますか?そうでない場合、GPLライセンスが問題である理由がわかりません。
Pascal Thivent、2010

2

Nexusの使用量は増加しているが、Artifcatoryの使用量は一般的に横ばいであることがわかります。

ここに画像の説明を入力してください

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

また、matrix-comparison http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrixもあります。


3
1.この画像はMaven Centralの呼び出しのみに依存しているため、正確ではありません。Maven Central以外にもダウンロードがあります。2. Codehausは現在死んでおり、matrixはbinary-repositories-comparison.github.ioに
JBaruch

いいね。もっと良い写真はありますか?
rofrol 2015

ここでいくつかの数字を見つけることができます。
JBaruch

1
Nexusに偏り、jfrogに偏り-どちらの数字のセットも信用できません。
カイルWiering 2016年

-2

ArtifactoryとNexusのどちらにも多かれ少なかれ似た機能セットがありますが、ArtifactoryのLDAPサポートにより、Nexusよりも魅力的です。NexusもLDAPをサポートしていますが、有料版では:-(


1
Googleコードには、Nexus用のオープンソースLDAPプラグインがあります。
ブライアンフォックス

3
LDAPサポートは1.5.0以降、Nexusの無料バージョンで提供されます
David Roussel

-2

うーん...アーティファクトでの私の経験はひどいです...しかし、私は比較的初心者なので、塩の粒でそれをとってください。私の全体的な不満は、最近Artifactoryにアップロードされたjarファイルがすぐに(数時間など)インデックス付けされないようであり、強制するための良い方法がないようです。私はそれらがうまくいくはずであるように見えたが、うまくいかなかったさまざまなことを試しました。私はm2eclipseを使用して、antから変換しているプロジェクトに依存関係を追加しています。アーチファクトに追加したばかりのjarを追加しようとすると、セレクターに選択肢として表示されるはずですが、表示されません。

同僚からネクサスがインストールされていて、今のところ気に入っていると言われましたが、まだ保証できません。IT部門が見つけたらすぐにLinuxボックスにインストールします。


3
あなたは、m2eclipseプラグインによって、IDEによってダウンロードされて消費されるNexusインデックスを参照しています。これらのインデックスは定期的にクライアントにダウンロードされ、すべての展開で消費されることを意図していません。Artifactoryでは、これらのインデックスの更新をスケジュールしたり、強制したりできます。参考までに、Artifactory検索(UI / REST)で使用されるインデックスは異なり、新しいアーティファクトのデプロイの一部として即座にアトミックに更新されます。IntelliJのようなツールは、ArtifactoryのREST APIを使用して、ローカルにキャッシュされたインデックスではなくリポジトリに対して検索を実行することにより、これを利用します。
Yoav Landman、2010年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.