アーティファクトリポジトリとは何ですか?ファイルを保存するだけの場所である場合、ソース管理システムを使用することはできませんか?
回答
開発では、かなりの量のさまざまなアーティファクトが生成されます。
- ソースコード
- コンパイルされたアプリケーション
- デプロイ可能なパッケージ
- ドキュメント
そして潜在的に他のものも
ソース管理システムを使用してそれらすべてを保存することはできますが、ソース管理システムは通常テキストベースを処理するように設計されているため、通常は非常に非効率的ですバイナリファイルではなくファイル。リリースのほとんどがテキストベースであり、大量のバイナリデータを保存する必要がない場合は、単純なストレージメカニズムとして使用できる可能性があります。
ただし、アーティファクトリポジトリは、バイナリファイルを含むすべての種類のファイルを格納するように設計されています。これには、圧縮されたソースコードから、ビルド結果、Dockerイメージなどまであらゆるものが含まれます。また、通常、これらのアーティファクトを保存するだけでなく、次のようなさまざまな追加機能を使用してアーティファクトを管理するのにも役立ちます。
- バージョン管理のサポート:各アーティファクトが作成されたとき、バージョンなど、メタデータを適切に保存します。番号は、ハッシュなどを保存することです。
- 保持:重要なアーティファクトのみを保持し、スナップショットのみである/不要になったアーティファクトなどを、設定できるさまざまな基準に基づいて自動的に削除します。
- アクセス制御:さまざまなアーティファクトを公開できるユーザーとダウンロードできるユーザーを設定します
- プロモーション:アーティファクトを宣伝する機能。たとえば、コーダーの近くのサーバーに保持期間の短いスナップショットアーティファクトを配置したり、ライブサーバーの近くに別のリポジトリを配置したりできます。この場合、デプロイ可能と見なされたアーティファクトのみが表示されます。これには、さまざまなバージョンチャネルのサポート、およびそれらの間でのアーティファクトの移動(特定のバージョンをベータ版から安定版に昇格させるなど)も含まれます。
- アーティファクトのネイティブリポジトリとして機能します。つまり、Maven、Rubygems、Dockerなどのメインリポジトリとして使用できます。これには、公式リポジトリからのアーティファクトのキャッシュも含まれます。
コメント
- バージョン管理のサポートに、'チャネル'機能を追加する価値があります。これには、いくつかの機能があります。チャネル"の最新リリースをターゲットとするマシンは"を開発し、チャネル" stable "。
- @ Pierre.Vriensはいくつかの小さなコメントを追加しましたが、別の質問で対処できるかもしれません
- merciですが、念のため、ここに追加のコメントを追加するチャンスがあります…
- 意味がありますかまた、これらの種類のリポジトリ内の構成ファイルまたはフィクスチャを追跡しますか?
回答
リポジトリマネージャーとユニバーサルパッケージリポジトリマネージャー(UPM)があります。
UPMは、Jenkins、teamcityなどのすべてのビルドアーティファクトを保存でき、通常、Maven、npm、NuGetなどのさまざまなタイプのバイナリアーティファクトのリポジトリマネージャーとしても機能します。
これらは、 Jfrog Artifactory 、 Inedo ProGet 、および Sonatype Nexus 。
かなりまともな比較がここにあります: https://binary-repositories-comparison.github.io/