Snapshot RepositoryとRelease Repositoryの違いは何ですか?
これは、リポジトリ(Artifactory、Nexusなど)のセットアップを参照しています
リリースアーティファクト
これらは、特定の特定時点のリリースです。リリースされたアーティファクトは、それらに依存するビルドが時間の経過とともに再現可能であることを保証するために、堅牢で安定しており、永続的であると見なされます。リリースされたJARアーティファクトはPGP署名に関連付けられ、チェックサムはバイナリソフトウェアアーティファクトの信頼性と整合性の両方を検証します。 Central Mavenリポジトリには、リリースアーティファクトが格納されます。
スナップショットアーティファクト
スナップショットは進行中の作業をキャプチャし、開発中に使用されます。スナップショットアーティファクトには、「1.3.0」や「1.3」などのバージョン番号とタイムスタンプの両方があります。たとえば、commons-lang 1.3.0のスナップショットアーティファクトの名前は、commons-lang-1.3.0-20090314.182342-1.jarです。
refcard から取得
リリースリポジトリはリリースを保持し、スナップショットリポジトリはスナップショットを保持します。 Mavenでは、スナップショットは-SNAPSHOTで終わるバージョンのアーティファクトとして定義されます。デプロイされると、スナップショットはタイムスタンプに変わります。定義により、スナップショットは可変であり、リリースは不変です。通常、スナップショットを失っても気にしないが、リリースを失っても気にするので、Nexusがそれらを別々に保存する理由です。これにより、スナップショットのクリーンアップが非常に簡単になります。
スナップショットは、バージョン番号を-SNAPSHOTSとして提供するというMavenのアイデアであり、開発中です。いつでも変更できます。
内部リポジトリは、バージョン番号が固定されたリリースリポジトリです。 SNAPSHOTSを変更できますが、そのアーティファクトはリリース後も変更されません。
通常、Mavenには2種類のビルドがあります。
1)スナップショットビルド:SNAPSHOTは、通常の特定のバージョンではなく、現在の展開コピーを示す特別なバージョンです。 Mavenは、リモートリポジトリ内のすべてのビルドのバージョンをチェックします。スナップショットビルドは、開発ビルドに他なりません。
2)ビルドのリリース:リリースは、ビルドのバージョンIDでスナップショットを削除することを意味します。これらは通常のビルドバージョンです。
スナップショットアーティファクトとリリースアーティファクトは、それぞれスナップショットへのプッシュ、リリースリポジトリです。
ここでのスナップショットとは、凍結されて変更されないスナップショットを意味するものではありません。スナップショットは、変更が新しいバージョン番号で表されるほど大きくないスナップショットをいくつかカバーします