大規模なビルドプロセス(> 100モジュール)にMavenを使用しています。外部依存関係をソース管理に保存し、それを使用してローカルリポジトリを更新しています。
ただし、中央にキャッシュできるローカルリポジトリに移行する準備ができているため、すべてのサードパーティを積極的にダウンロードする必要はありません(ただし、ローカルリポジトリを取得できます)。さらに、開発者が世界を構築する必要がないように、ナイトリービルドから内部ビルドアーティファクトを公開したいと思います。
NexusとArtifactoryを検討しています。一方を他方より好む理由は何ですか?他に検討すべきものはありますか?
Artifactoryについては知りませんが、Nexusを使用する理由は次のとおりです。
「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サーバーからのあらゆる種類のバイナリの一般的な「バイナリストレージ」であり続けています。
Artifactoryは、両方ファイルシステムとデータベースストレージのバックエンドをサポートします。ストレージはチェックサムに基づいており、同じバイナリがレポに何回出現しても、一度だけ保存されるため、Artifactoryのストレージ効率が向上します。このアーキテクチャにより、移動とコピーも非常に安価です(Nexusでは、移動/コピーにRESTはありません-ファイルシステム上でアイテムを移動してから、レポで修正アクションを実行する必要がありますコンテンツが変更されたことを知っています)。
別の重要な差別化要因は、ArtifactoryがHudsonおよびTeamCityと独自に統合して、デプロイされたアーティファクト、解決された依存関係、ビルド実行に関連する環境データに関する情報をキャプチャすることです。
Artifactoryはアーティファクトをデータベースに保存します。つまり、何か問題が発生した場合、すべてのアーティファクトが失われます。 Nexusは貴重なアーティファクトにフラットファイルを使用するため、すべてが失われることを心配する必要はありません。
いずれかの「Pro」機能(ステージングリポジトリ、アーティファクトプロモーション、NuGetなど)が必要な場合は、Webサイトに表示されるさまざまな価格設定モデルを検討する必要があります。
要約すれば:
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ドルです)。
Artifactory 2とNexus 1.3について最近いくつかの研究を行いました。私が見つけた主な違いをここにリストします:
あなたはArtifactoryを使用する必要がありますその最新バージョンは本当のジャンプでしたあなたはリポジトリを増分バックアップすることができます、つまりあなたはすべてのアーティファクトを保存して維持することができます新しいバージョン2.0をリリース
学習者の観点からは、この2つの間にいくつかの特定の違いがあることに注意してください。
すべての政治/宗教は別として、ライセンスは一部の組織に違いをもたらします。
ネクサスは GPL 今 AGPLv3 そして今 Eclipse Public License(EPL) 。
工房は Apacheライセンス LGPLv 製品のバージョン2.1の時点でライセンスされています。
また、比較のために Archiva を検討することもできます。 Apache 2.0のライセンスです。
Nexusの使用量は増加している一方、Artifcatoryの使用量はほぼ横ばいです。
ここから写真が撮影されます http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/
マトリックス比較もあります http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix