118

快照存储库和发布存储库有什么区别?

这是关于设置存储库(如 Artifactory、Nexus 等)的参考

4

5 回答 5

100

发布存储库保存发布,快照存储库保存快照。在 Maven 中,快照被定义为版本以 -SNAPSHOT 结尾的工件。部署时,快照会变成时间戳。根据定义,快照是可变的,发布是不可变的。这就是为什么 Nexus 让您将它们分开存储的原因,因为通常您不在乎是否丢失快照,但您会关心是否丢失版本。它使快照清理更容易以这种方式处理。

于 2008-12-25T18:35:44.543 回答
78

发布工件

这些是特定的时间点发布。发布的工件被认为是可靠的、稳定的和永久的,以保证依赖于它们的构建随着时间的推移是可重复的。已发布的 JAR 工件与 PGP 签名相关联,校验和验证二进制软件工件的真实性和完整性。中央 Maven 存储库存储发布工件。

快照工件

快照捕获正在进行的工作并在开发过程中使用。快照工件具有版本号(例如“1.3.0”或“1.3”)和时间戳。例如,commons-lang 1.3.0 的快照工件可能具有名称 commons-lang-1.3.0-20090314.182342-1.jar。

取自refcard

于 2014-04-18T09:38:15.733 回答
4

通常在 Maven 中,我们有两种类型的构建:

1)快照构建:SNAPSHOT 是指示当前部署副本的特殊版本,而不是常规的特定版本。Maven 检查远程存储库中每个构建的版本。快照构建只不过是开发构建。

2)发布版本:发布意味着删除版本 ID 处的 SNAPSHOT 版本。这些是常规的构建版本。

快照工件和发布工件分别推送到快照、发布存储库。

于 2014-09-16T09:02:46.533 回答
3

快照是将版本号作为 -SNAPSHOTS 的 maven 想法,它正在开发中,它可以随时更改。

内部存储库是具有固定版本号的发布存储库。您可以修改 SNAPSHOTS,但该工件在发布后永远不会更改。

于 2016-01-19T06:59:10.663 回答
1

这里的 SNAPSHOT 并不是真正的 ONE 快照被冻结并且不会改变,SNAPSHOT 涵盖了几个快照,它们的修改量不足以用新的版本号表示

于 2017-08-08T07:47:47.387 回答