Mavenスナップショットリポジトリとリリースリポジトリ


103

スナップショットリポジトリとリリースリポジトリの違いは何ですか?

これは、リポジトリ(Artifactory、Nexusなど)のセットアップに関するものです。


これは何に関連していますか?ソース管理?私が知る限り、これは標準的な用語ではありませんが、スナップショットはある時点で(おそらく内部で使用するために)ソースツリーの画像として使用されていましたが、リリースは外部でリリースされたコードに使用されていました。
1800情報

Maven(ビルドツール)について質問しているようです。多分あなたはそれを質問とタグに含めるべきです。
2008年

回答:


67

アーティファクトのリリース

これらは、特定の時点のリリースです。リリースされたアーティファクトは、それらに依存するビルドが長期間にわたって再現可能であることを保証するために、堅固で安定していて永続的であると見なされます。リリースされたJARアーティファクトはPGP署名に関連付けられ、チェックサムはバイナリソフトウェアアーティファクトの信頼性と整合性の両方を検証します。Central Mavenリポジトリには、リリースアーティファクトが格納されます。

スナップショットアーティファクト

スナップショットは進行中の作業をキャプチャし、開発中に使用されます。スナップショットアーティファクトには、「1.3.0」や「1.3」などのバージョン番号とタイムスタンプの両方があります。たとえば、commons-lang 1.3.0のスナップショットアーティファクトの名前はcommons-lang-1.3.0-20090314.182342-1.jarのようになります。

refcardから取得


Sayat、1.1.0.M5 それとも1.1.0.M4 スナップショットの1つのバージョンですか?
Alexander Suraphel

4
これにより、リリースとスナップショットのアーティファクトが定義されます。しかし:2つの異なるリポジトリが必要ですか?
dna


1
これは質問の答えにはなりません。質問は、リリースリポジトリとスナップショットリポジトリ(アーティファクトではない)の違いについてです。
mks-d 2017

1
@ mks-d良い観察ですが、「何か」が何であるかを最初に理解せずに何かのリポジトリを理解することは困難です。:) stackoverflow.com/a/5901460
datv 2017

86

リリースリポジトリはリリースを保持し、スナップショットリポジトリはスナップショットを保持します。Mavenでは、スナップショットは、バージョンが-SNAPSHOTで終わるアーティファクトとして定義されます。デプロイされると、スナップショットはタイムスタンプに変わります。定義により、スナップショットは変更可能であり、リリースは不変です。通常、スナップショットを紛失してもかまわないが、リリースを紛失してもかまわないため、Nexusではそれらを個別に保存するのはこのためです。これにより、スナップショットのクリーンアップがその方法ではるかに簡単に処理できるようになります。


12
「デプロイすると、スナップショットはタイムスタンプに変わります」をありがとう。
datv 2017

jenkinsでジョブを構成し、アップロードアーティファクトをネクサススナップショットリポジトリに使用すると、複数のスナップショットを表示できませんでした。通常、プロジェクトに変更を加えてビルドをトリガーすると、新しいアーティファクトが作成されます。これが起こっているが、それは同じ1.0-SNAPSHOTに名前を変更されているが、むしろそれは、2.0-SNAPSHOTとしてそれに名前を付ける必要があります&..だからすべてのヘルプ..に@Brianフォックス
farhan FRP

私はジェンキンスのビルド後のセクションで使用し、アーティファクトをmavenリポジトリーにデプロイし、それをネクサスのスナップショットレポとして構成しました。
farhan FRP

3

スナップショットは、バージョン番号を-SNAPSHOTSとして与えるという優れたアイデアです。開発中のため、いつでも変更できます。

内部リポジトリは、バージョン番号が固定されたリリースリポジトリです。SNAPSHOTSは変更できますが、そのアーティファクトはリリース後に変更されることはありません。


「その下に開発、それは変更することができますいつでも」(-snapshot用)
DATV

3

通常、mavenには2種類のビルドがあります。

1)スナップショットビルド:SNAPSHOTは、現在の展開コピーを示す特別なバージョンであり、通常の特定のバージョンではありません。Mavenは、リモートリポジトリ内のすべてのビルドのバージョンをチェックします。スナップショットビルドは、開発ビルドにすぎません。

2)リリースビルド:リリースとは、ビルドのバージョンIDにあるスナップショットを削除することを意味します。これらは通常のビルドバージョンです。

スナップショットアーティファクトとリリースアーティファクトは、それぞれスナップショットとリリースリポジトリにプッシュされます。


0

ここでのSNAPSHOTは、1つのスナップショットが凍結されて変更されないという意味ではありません。SNAPSHOTは、変更が新しいバージョン番号で表すのに十分な大きさではないいくつかのスナップショットをカバーします

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.