版本号规范,镜像版本SNAPSHOT,LATEST 和 RELEASE 版本
如果版本号不遵守maven规范,那么maven在对版本进行排序的时候,无法识别出版本,只能按照字符串排序规则排序。
maven要求版本命名以
主版本.次版本.增量版本-限定版本,其中每个节点都可以抛弃,但至少包含一个节点,如可以为version命名为1
如1.2.3-beta-03
另外对于限定版本号的命名也要注意,当限定版本后面带有版本号的时候,比如
1.2.3-beta-10和1.2.3-beta-3之间,maven无法识别出1.2.3-beta-3<1.2.3-beta-10因为maven对限定版本的处理依然要求是数字才能识别,而beta-xxx会被识别为一个字符串,因此按照字符串排序了。
而为了解决这个问题,可以进行追加0的处理方式,比如
1.2.3-beta-3改成1.2.3-beta-003
[b]LATEST 和 RELEASE 版本[/b]
LATEST是指某个特定构件最新的发布版或者快照版(snapshot),最近被部署
到某个特定仓库的构件。RELEASE是指仓库中最后的一个非快照版本。
在Maven 2.0.9之前,Maven会自动将核心插件更新
至LATEST版本。这种行为导致了很多奇怪现象,因为新版本的插件可能会有一些bug,
甚至是行为变更,这往往使得原来的构建失败。当Maven自动更新核心插件的时候,我
们就不能保证构建的重现性,因为插件随时都可能从中央仓库更新至一个新的版本。从Maven 2.0.9开始,Maven从根本上锁住了一组核心插件的版本。非核心插件,或者说没
有在超级POM中指定版本的插件仍然会使用LATEST版本去从仓库获取构件。由于这个原
因,你在构件中使用任何一个自定义非核心插件的时候,都应该显式的指定版本号。
[b]SNAPSHOT[/b]
这个事maven的特殊版本号,maven在处理的时候,把SNAPSHOT字符创自动替换成时间
如你在UTC2008年2月7号下午11:08部署了这个版本,Maven就会将这个版本展开
成“1.0-20080207-230803-1”。换句话说,当你发布一个snapshot,你没有发布一个
软件模块,你只是发布了一个特定时间的快照版本。
[b]对于SNAPSHOT功能,网友的一个例子
比如,你的工程要依赖的core版本是 1.0.0 版本,结果这个版本还正处于对方(叫小菜吧)的开发过程中,他利用maven命令mvn install打包成jar,并部署到服务器上,根据pom设定的版本,你顺利下载了依赖包。但小菜后续开发过程,发现了一个致命bug,那么他再操作一次,那么,即使服务器的更新是你需要的,你只能干着急,只能跟小菜吼一声,“你的版本,老子无法更新依赖包,再给我发一个新的版本上去。”小菜一听,好吧,那我把版本升到 1.0.1 版本,你通过update dependencies 下载了这个新版本的jar包。这样的情况,会循环地出现,那么你和小菜有点恼火了,maven就是老鼠钻到风箱里,两头受气,maven想能不能开发一个功能,使双方默认可以上传并打包下载到最新的开发版本,而不用修改版本号,否则开发完成之后,服务器上是一堆的release版本。有了这个思路,maven增加了划时代的功能,snapshot ,这样依赖版本为 1.0.0-SNAPSHOT (注意必须为全大写),当服务器上有更新时,会自动下载到本地,省去了不少、和小菜的沟通时间,也减小了不少由于版本问题带来的编译错误。 [/b]
版本号规范,镜像版本SNAPSHOT,LATEST 和 RELEASE 版本相关推荐
- Maven 的 Snapshot 版本与 Release 版本
Maven 的 Snapshot 版本与 Release 版本 1.Snapshot 版本代表不稳定.尚处于开发中的版本. 2.Release 版本则代表稳定的版本. 3.什么情况下该用 SNAPSH ...
- android 编译 release版本,详细android gradle 只编译realse版本
大部分来自于 gradle build 会生成默认的debug版本 和 release 版本 gradle assemblerelease不生成debug版本,只生成release版本 gradle ...
- SHAR1,获取不同,release版本SHAR1,debug版本SHAR1,导致定位失败,经纬度获取为0
问题: 1,获取的shar1不同 2,直接运行到手机上没有服务,比如定位失败,导航失败:打包后是有服务的,有时候,直接运行上去又服务,打包后没有服务了,APP要上线了,出这样的问题,毫无头绪,好着急, ...
- 百度地图返回5e-324问题解决(获取release版本SHA1)
获取SHA1: 1.首先在百度地图控制台为应用申请key时会有两个版本的SHA1值,一个为debug版本,一个为release版本.对于debug的获取想必大家都已知道(可以通过AS右方的Gradle ...
- VC中debug和release版本的区别
vc中debug和release的不同 收藏 在使用VC开发软件的过程中,正当要享受那种兴奋的时候突然发现:release与debug运行结果不一致,甚至出错,而release又不方便调试,真的是当 ...
- VS的release版本如何调试
问题 由于需要调试项目的release版本,默认的release版本不能进行调试,需要设置项目属性. 解决 1. 右键打开项目属性,切换配置至对应的Release版本 2.在左侧配置属性树中找到 C/ ...
- maven snapshot和release版本的区别
在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次.我们知道,maven的依赖管理是基于版本管理的, ...
- Snapshot和Release版本
Snapshot和Release版本 1.snapshot版本自动获取服务器最新代码原理 我们在提交snapshot版本时 mvn deploy,会提交一个带时间搓的版本号! maven会根据模块的版 ...
- Maven的Snapshot版本与Release版本
1. Snapshot版本代表不稳定.尚处于开发中的版本 2. Release版本则代表稳定的版本 3. 什么情况下该用SNAPSHOT? 协同开发时,如果A依赖构件B,由于B会更新,B应该使用SN ...
- Maven仓库之release版本和snapshot版本
maven中的仓库分为两种,snapshot快照仓库和release发布仓库. snapshot快照仓库用于保存开发过程中的不稳定版 本,release正式仓库则是用来保存稳定的发行版本. 定义一个组 ...
最新文章
- python中什么是字符举例说明_第20p,什么是字符串?Python中的str
- 【代码笔记】iOS-TableViewOfTwoSecton
- php 怎么定义一个空对象,php定义空对象的方法
- 10进制转换成其他进制-短除法
- ubuntu 安装 cuda
- 计算机网关,如何查看计算机的IP地址和网关
- 关于Eclipse无法导入包的问题???
- 【编程软件】keli烧录代码点击Download或者Debug界面卡死
- Windows内核之系统架构
- 软件工程——瀑布模型、快速原型模型、增量模型、螺旋模型
- js调用html文件上传,JavaScript里的文件上传API
- 2022年计算机二级Access数据库程序设计复习题及答案
- 微信小程序轮播图点击跳转页面
- 前端实习日记(6月前两周)
- html及css中页面总宽度的代码,css 宽度(CSS width)
- 为什么人工智能工程师被戏称为“调参侠”?
- 拍照爱摆“剪刀手”?呵呵,1.5米内100%还原指纹
- 微信编辑器哪个好用?-----亲测,良心推荐微编王
- 让人工智能完美运行:我们怎么给人工智能系统赋予价值观?
- 2020年Android开发的未来发展方向该如何走?