首页 > 其他分享 >SNAPSHOT 版本 VS RELEASE 版本

SNAPSHOT 版本 VS RELEASE 版本

时间:2022-09-07 13:12:30浏览次数:77  
标签:依赖 快照 仓库 VS SNAPSHOT 版本 RELEASE

SNAPSHOT 版本 VS RELEASE 版本

Maven 仓库分为两种,Snapshot 快照仓库和 Release 发行仓库。Snapshot 快照仓库用于保存开发过程中的不稳定 SNAPSHOT 版本,Release 发行仓库则用来保存稳定的 RELEASE 版本。

Maven 会根据模块的版本号(pom.xml 文件中的 version 元素)中是否带有 -SNAPSHOT 来判断是 SNAPSHOT 版本还是正式 RELEASE 版本。带有 -SNAPSHOT 是SNAPSHOT(快照)版本,不带 -SNAPSHOT 的就是正式 RELEASE(发布)版本。

SNAPSHOT 版本和 RELEASE 版本区别如下表。

区别 SNAPSHOT 版本 RELEASE 版本
定义 版本号中带有 -SNAPSHOT 版本号中不带有 -SNAPSHOT
发布仓库 Snapshot 快照仓库 Release 发行仓库
是否从远程仓库自动获取更新 在不更改版本号的前提下,直接编译打包时,Maven 会自动从远程仓库上下载最新的快照版本。 在不更改版本号的前提下,直接编译打包时,如果本地仓库已经存在该版本的模块,则 Maven 不会主动去远程仓库下载。
稳定性 快照版本往往对应了大量带有时间戳的构件,具有不稳定性。 发布版本只对应了唯一的构件,具有稳定性。
使用场景 快照版本只应该在组织内部的项目中依赖使用。 Maven 项目使用的组织外的依赖项都应该时发布版本的,不应该使用任何的快照版本依赖,否则会造成潜在的风险。
发布前是否需要修改 当项目经过完善的测试后,需要上线时,应该将项目从快照版本更改为发布版本 不需要修改

SNAPSHOT-优点:

同一个SNAPSHOT版本的依赖可以多次发布(deploy)到仓库中,即同一个SNAPSHOT版本的依赖可以在仓库中存在多份其中HEAD总是指向最新的快照,对外界可见的一般也是最新版,这种给人的假象是新的覆盖了老的,从而使得使用SNAPSHOT依赖的客户端可通过重新构建就可以拿到最新的代码(有时候需要-U强制更新)。例如:A-->B-1.3.8-SNAPSHOT(理解为A依赖了B的1.3.8-SNAPSHOT版本),那么B-1.3.8-SNAPSHOT更新之后重新deploy到仓库之后,A只需要重新构建就可以拿到最新的代码,并不需要改变依赖B的版本。由此可见,这样达到了变更传达的透明性,这对于开发过程中的团队协作的帮助不言而喻。

SNAPSHOT-缺点:

SNAPSHOT版本的依赖因为存在变更传达的透明性的优势而被赏识,有很多团队索性直接使用SNAPSHOT到生产环境中,这样对于变更直接生效,很方便。但是作为技术人员的我们其实应该很严谨地看待变更传达的透明性,变更就意味着风险,透明性更是把风险彻底隐藏了起来,生产环境中存在这样的现象更是心惊胆战。例如:A-->B.1.0.3-SNAPSHOT,B对一个A使用的功能实现进行了调整,直接发布到仓库,A重新构建或许就会失败,更糟糕的是构建成功,运行时异常。这个时候A甚至完全没有代码变更就突然失败了,会带来更多的困惑。

标签:依赖,快照,仓库,VS,SNAPSHOT,版本,RELEASE
From: https://www.cnblogs.com/horseweed/p/16665026.html

相关文章

  • VScode 突然无法连接
    大量输出下面的内容:>Waitingforserverlog...解决:把服务器端的/home/自己的用户名/.vscode-server删除即可查看全部文件:ll-arm-rf.vscode-server再次连接......
  • SVN检出未响应,版本库浏览打不开卡死。
    今天遇到一个奇葩问题。1、换了新电脑,首先SVN地址没问题。检出就未响应,不弹出输入用户名,密码。2、发现装了讯软加密软件,后安装的SVN。(未告知管理员,对新机加密软件配置)。......
  • vscode环境配置(C/C++)
    一.MinGW和vscode的简单了解1.MinGW是什么?MinGW(MinimalistGNUonWindows)。它实际上是将经典的开源C语言编译器GCC移植到了Windows下,并且包含了Win32API,因此可......
  • [Python以终为始]Day 2–在VSCode开发
    [Python以终为始]Day2–在VSCode开发想研究机器学习的前端工程师,从零到一百学习python的笔记前置下载并安装VSCode在VSCode安装由微软开发的python套件准备开始!......
  • 在UNI-APP创建VUE3项目时配置VUE版本
    在UNI-APP创建项目时,默认是VUE2版本。如果直接使用VUE3代码时会出错。所以第一步就要求设置VUE版本,操作如下:打开根目录下/manifest.json文件,找到“基础配置”-->"Vue......
  • 同样的项目vscode 内存 93M,phpstorm 2个G
         vscodecmd+shift+p 把shellcommand添加code在环境变量中,然后可以用code.打开当前文件安装 Materialicon插件可以显示文件夹的图标......
  • 适合初学者的最佳 VSCode 扩展 2022
    适合初学者的最佳VSCode扩展2022可以说,VisualStudioCode(VSCode)是最流行的开源代码编辑器。它归微软所有,效果惊人。VSCode旨在提供一个高效的环境,为您的日常编......
  • cnblogs x vscode All In One
    cnblogs&vscodeextensionsAllInOne......
  • VSCode插件开发流程
    1.安装脚手架npminstall-gyonpminstall-ggenerator-codeyocode2.配置package.json{"name":"jsx2css-convert-tool","displayName":"jsx2css_conver......
  • Backtracking VS DFS
    BacktrackingVSDFSBacktrackingIftherearemultiplepathstoreachnode'A',inbacktrackingyouvisitthat'A'nodemultipletimesthroughdifferentpaths.......