java快照干嘛的_Maven快照到底是什么,为什么我们需要它?

本文详细介绍了Maven中的快照(SNAPSHOT)版本和发布版本的区别,快照版本通常用于开发中的项目,而发布版本则用于最终的稳定版本。文章还探讨了如何在Maven中管理和使用这些版本。

我对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发布过程的一个例子

BAYDk.png

#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的上下文将有助于了解快照和发行版之间的区别。 在开发过程中,开发人员都将其功能贡献给基准分支。 在某个时候,线索认为已经积累了足够的功能,那么他将从基准分支中删除发布分支。 在此时间点之前的所有构建都是快照。 到此为止的构建都是发行版。 需要注意的是,如果在发布测试期间发现任何缺陷,则发布版本在投入生产之前也可能会发生变化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值