Maven快照存储库与发布存储库


103

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

这与设置存储库(如Artifactory,Nexus等)有关


这与什么有关?源代码控制?就我所知,这不是标准术语,但我可能会猜测快照在某个时间点(可能是内部使用)用作源树的图片,而发行版则用于外部发行的代码。
1800信息

听起来您在问Maven(构建工具)。也许您应该在问题和标签中添加它。

Answers:


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


萨亚特,是1.1.0.M5 1.1.0.M4 快照的一个版本?
Alexander Suraphel

4
这定义了什么是发行和快照工件。但是:是否需要两个不同的存储库?
dna


1
这不能回答问题,而是关于发行版和快照存储库(不是工件)之间的区别的问题。
mks-d

1
@ mks-d很好的观察力,但是如果不先了解“事物”是什么,就很难理解事物的存储库。:) stackoverflow.com/a/5901460
datv

86

版本存储库包含版本,而快照存储库包含快照。在maven中,快照定义为工件的版本以-SNAPSHOT结尾。部署后,快照将转换为时间戳。根据定义,快照是可变的,发布是不可变的。这就是Nexus之所以将它们分开存储的原因,因为通常您并不在乎丢失快照,但会在乎是否丢失版本。它使快照清理更容易处理。


12
感谢“在部署时,SNAPSHOT变成了时间戳”
datv

当我在jenkins上配置作业并使用上载工件连接快照回购时,我看不到多个快照。通常,当我们在项目中进行更改并触发构建时,将创建一个新的工件。尽管这种情况正在发生,但是它正在将其重命名为相同的1.0-SNAPSHOT,而应将其命名为2.0-SNAPSHOT等。.任何帮助.. @Brian Fox
farhan

我曾在jenkins的后期构建部分中使用过,将工件部署到maven存储库并将其配置为nexus的快照存储库。
frp farhan

3

快照是将版本号指定为-SNAPSHOTS的行家想法,其正在开发中,可以随时更改。

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


对于“正在开发中,它可以随时更改(对于-SNAPSHOT)
datv

3

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

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

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

快照构件和发布构件分别被推送到快照和发布存储库。


0

SNAPSHOT在这里并不是真的意味着一个快照被冻结并且不会更改,SNAPSHOT涵盖了几个快照,这些快照的修改大小不足以用新版本号表示

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.