我对Maven快照的含义有点困惑,为什么我们要构建一个快照?
#1楼
这就是存储库快照的外观,并且在这种情况下未启用快照,这意味着此处引用的存储库是稳定的,不需要更新。
...
lds-main
LDS Main Repo
http://code.lds.org/nexus/content/groups/main-repo
false
另一种情况是:
true
这意味着Maven将寻找该存储库的更新。 您还可以使用标签指定更新间隔。
#2楼
通常在Maven中,我们有两种类型的内部版本1)快照内部版本2)发布内部版本
快照版本:SNAPSHOT是特殊版本,用于指示当前的部署副本与常规版本不同,maven会检查远程存储库中每个版本的版本,因此快照版本不过是开发版本。
发布版本:发行意味着删除该版本的SNAPSHOT,这是常规的版本。
#3楼
Maven版本可以包含字符串文字“ SNAPSHOT”,以表示当前正在积极开发项目。
例如,如果您的项目的版本为“ 1.0-SNAPSHOT”,并且将该项目的工件部署到Maven存储库,那么如果要在11处部署发行版,则Maven会将该版本扩展为“ 1.0-20080207-230803-1” UTC时间:2008年2月7日晚上8点。 换句话说,部署快照时,并不是要发布软件组件;而是要发布软件组件。 您将在特定时间发布组件的快照。
因此,快照版本主要用于活动开发中的项目。 如果您的项目依赖于正在开发中的软件组件,则可以依赖快照发行版,并且在运行构建时,Maven会定期尝试从存储库下载最新的快照。 同样,如果系统的下一发行版将具有“ 1.8”版本,则在正式发行之前,您的项目将具有“ 1.8-SNAPSHOT”版本。
例如,以下依赖项将始终下载spring的最新1.8开发JAR:
org.springframework
spring
1.8-SNAPSHOT”
Maven发布过程的一个例子

#4楼
我想谈一谈术语。 其他答案很好地解释了Maven上下文中的“快照”版本。 但是,是否应该将非快照版本称为“发行”版本呢?
有一个“放”版本的语义版本的想法,这似乎是没有限定词,如任何版本之间的一些紧张-SNAPSHOT也没有一个限定词,如-beta.4 ; 和Maven的“发行”版本的想法,其中似乎仅包括-SNAPSHOT的缺失。
换句话说,“发布”是指“我们可以将其发布到Maven Central”还是“该软件已最终发布给公众”,这在语义上是模棱两可的。 如果将-beta.4公开发布,我们可以认为-beta.4是“发布”版本,但它不是“最终发布”。 语义版本控制清楚地表明, -beta.4类的-beta.4是“预发行”版本,因此即使没有-SNAPSHOT ,将其称为“发行”版本也没有-SNAPSHOT 。 实际上,根据定义,即使-rc.5也是一个发行候选版本,而不是实际发行版,即使我们可以允许公众访问进行测试。
因此,尽管如此,我认为Maven似乎更合适的是只调用一个根本没有任何限定符的“发布”版本,甚至没有-beta.4 。 对于Maven非快照版本,更好的名字可能是“稳定”版本(受另一个答案的启发)。 因此,我们将有:
1.2.3-beta.4-SNAPSHOT :预发行版本的快照版本。
1.2.3-SNAPSHOT :发行版的快照版本。
1.2.3-beta.4 :预发行版本的稳定版本。
1.2.3 :发行版(显然是稳定的非快照版本)。
#5楼
了解SDLC的上下文将有助于了解快照和发行版之间的区别。 在开发过程中,开发人员都将其功能贡献给基准分支。 在某个时候,线索认为已经积累了足够的功能,那么他将从基准分支中删除发布分支。 在此时间点之前的所有构建都是快照。 到此为止的构建都是发行版。 需要注意的是,如果在发布测试期间发现任何缺陷,则发布版本在投入生产之前也可能会发生变化。
本文详细介绍了Maven中的快照(SNAPSHOT)版本和发布版本的区别,快照版本通常用于开发中的项目,而发布版本则用于最终的稳定版本。文章还探讨了如何在Maven中管理和使用这些版本。
1852

被折叠的 条评论
为什么被折叠?



