如果版本号不遵守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 版本相关推荐

  1. Maven 的 Snapshot 版本与 Release 版本

    Maven 的 Snapshot 版本与 Release 版本 1.Snapshot 版本代表不稳定.尚处于开发中的版本. 2.Release 版本则代表稳定的版本. 3.什么情况下该用 SNAPSH ...

  2. android 编译 release版本,详细android gradle 只编译realse版本

    大部分来自于 gradle build 会生成默认的debug版本 和 release 版本 gradle assemblerelease不生成debug版本,只生成release版本 gradle ...

  3. SHAR1,获取不同,release版本SHAR1,debug版本SHAR1,导致定位失败,经纬度获取为0

    问题: 1,获取的shar1不同 2,直接运行到手机上没有服务,比如定位失败,导航失败:打包后是有服务的,有时候,直接运行上去又服务,打包后没有服务了,APP要上线了,出这样的问题,毫无头绪,好着急, ...

  4. 百度地图返回5e-324问题解决(获取release版本SHA1)

    获取SHA1: 1.首先在百度地图控制台为应用申请key时会有两个版本的SHA1值,一个为debug版本,一个为release版本.对于debug的获取想必大家都已知道(可以通过AS右方的Gradle ...

  5. VC中debug和release版本的区别

    vc中debug和release的不同 收藏  在使用VC开发软件的过程中,正当要享受那种兴奋的时候突然发现:release与debug运行结果不一致,甚至出错,而release又不方便调试,真的是当 ...

  6. VS的release版本如何调试

    问题 由于需要调试项目的release版本,默认的release版本不能进行调试,需要设置项目属性. 解决 1. 右键打开项目属性,切换配置至对应的Release版本 2.在左侧配置属性树中找到 C/ ...

  7. maven snapshot和release版本的区别

    在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次.我们知道,maven的依赖管理是基于版本管理的, ...

  8. Snapshot和Release版本

    Snapshot和Release版本 1.snapshot版本自动获取服务器最新代码原理 我们在提交snapshot版本时 mvn deploy,会提交一个带时间搓的版本号! maven会根据模块的版 ...

  9. Maven的Snapshot版本与Release版本

    1. Snapshot版本代表不稳定.尚处于开发中的版本 2. Release版本则代表稳定的版本 3. 什么情况下该用SNAPSHOT?  协同开发时,如果A依赖构件B,由于B会更新,B应该使用SN ...

  10. Maven仓库之release版本和snapshot版本

    maven中的仓库分为两种,snapshot快照仓库和release发布仓库. snapshot快照仓库用于保存开发过程中的不稳定版 本,release正式仓库则是用来保存稳定的发行版本. 定义一个组 ...

最新文章

  1. python中什么是字符举例说明_第20p,什么是字符串?Python中的str
  2. 【代码笔记】iOS-TableViewOfTwoSecton
  3. php 怎么定义一个空对象,php定义空对象的方法
  4. 10进制转换成其他进制-短除法
  5. ubuntu 安装 cuda
  6. 计算机网关,如何查看计算机的IP地址和网关
  7. 关于Eclipse无法导入包的问题???
  8. 【编程软件】keli烧录代码点击Download或者Debug界面卡死
  9. Windows内核之系统架构
  10. 软件工程——瀑布模型、快速原型模型、增量模型、螺旋模型
  11. js调用html文件上传,JavaScript里的文件上传API
  12. 2022年计算机二级Access数据库程序设计复习题及答案
  13. 微信小程序轮播图点击跳转页面
  14. 前端实习日记(6月前两周)
  15. html及css中页面总宽度的代码,css 宽度(CSS width)
  16. 为什么人工智能工程师被戏称为“调参侠”?
  17. 拍照爱摆“剪刀手”?呵呵,1.5米内100%还原指纹
  18. 微信编辑器哪个好用?-----亲测,良心推荐微编王
  19. 让人工智能完美运行:我们怎么给人工智能系统赋予价值观?
  20. 2020年Android开发的未来发展方向该如何走?

热门文章

  1. 计算机禁用网络后怎么打开,无线网关,教您笔记本无线网络禁用后怎么开启
  2. 永恒之蓝(MS17-010)
  3. 你要如何衡量你的人生?
  4. 如何安装HDDM,无法使用HDDM
  5. 【渝粤教育】电大中专中药炮制学作业 题库
  6. git cherry-pick操作
  7. easySearch:一款聚合资源搜索神器
  8. linux批量修改图片大小,Linux中使用Imagemagick批量调整图片大小
  9. matlab锂电池充电电路,锂离子电池充放电电路模型及其仿真.doc
  10. Pygame实战之外星人入侵NO.12——点击按钮开始游戏