在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次。我们知道,maven的依赖管理是基于版本管理的,对于发布状态的artifact,如果版本号相同,即使我们内部的镜像服务器上的组件比本地新,maven也不会主动下载的。如果我们在开发阶段都是基于正式发布版本来做依赖管理,那么遇到这个问题,就需要升级组件的版本号,可这样就明显不符合要求和实际情况了。但是,如果是基于快照版本,那么问题就自热而然的解决了,而maven已经为我们准备好了这一切。

maven中的仓库分为两种,snapshot快照仓库和release发布仓库。snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在pom文件中在该模块的版本号后加上-SNAPSHOT即可(注意这里必须是大写),如下:

   
  1. <groupId>cc.mzone</groupId>
  2. <artifactId>m1</artifactId>
  3. <version>0.1-SNAPSHOT</version>
  4. <packaging>jar</packaging>

maven2会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本。如果是快照版本,那么在mvn deploy时会自动发布到快照版本库中,而使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本。如果是正式发布版本,那么在mvn deploy时会自动发布到正式版本库中,而使用正式版本的模块,在不更改版本号的情况下,编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务器上下载。

所以,我们在开发阶段,可以将公用库的版本设置为快照版本,而被依赖组件则引用快照版本进行开发,在公用库的快照版本更新后,我们也不需要修改pom文件提示版本号来下载新的版本,直接mvn执行相关编译、打包命令即可重新下载最新的快照库了,从而也方便了我们进行开发。

maven snapshot和release版本的区别相关推荐

  1. Snapshot和Release版本

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

  2. VS Debug和Release版本的区别

    VS Debug和Release版本的区别 1. 变量. 大家都知道,debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc(注1),而release的赋值 ...

  3. linux release 版本的区别,编译debug版本和编译release版本的区别

    大项目的版本编译会区别debug和release,那debug和release会有什么区别呢? 通过对比这两者的编译选项可以找到答案. 1.对比编译过程 debug: -DOS_LINUX  -DDE ...

  4. Debug与Release版本的区别

    由于最近搞了个项目,在Dedug版本下正常,但Release版本就有问题,看样子还是debug版本和release版本的区别没有搞清楚. 有遇到下面3个问题: 1.Debug版本下程序可以正常运行退出 ...

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

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

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

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

  7. maven 发部release版本

    maven会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本. deploy发布 传统的web项目一般会有一个api模块,用于发布对外的RPC接 ...

  8. C++ debug和release版本的区别及调试技巧

    一.Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程 ...

  9. Alpha、Beta、RC、Release版本的区别

    开发期 Alpha α是希腊字母的第一个,表示最早的版本,预览版,内部测试版,一般不向外部发布,bug会比较多,功能也不全,一般只有测试人员使用. Beta β是希腊字母的第二个,公开测试版,比alp ...

最新文章

  1. 学术 | 据说以后在探头下面用帽子挡脸没用了:用于遮挡物检测的对称卷积神经网络——SymmNet...
  2. java 以什么开头_判断字符串以什么开头
  3. 二阶龙格库塔公式推导_DeepFM原理推导
  4. 深圳大学计算机科学专业排名,深圳大学专业排名及介绍 哪些专业最好
  5. Pa interface issue——PA_EXCEED_ROUND_LIMIT
  6. 使用OpenCV可视化Intel Realsensen D435 深度图为彩色图
  7. Python连接ActiveMQ的操作
  8. 【LeetCode】面试题 03. 数组中重复的数字
  9. 索引法则--尽量使用覆盖索引
  10. POI excel 添加水印 xls,xlsx
  11. uni-app 小程序开发 (一)
  12. 怎么下载网页在线视频
  13. IDEA TOP TIPS
  14. 树莓派4B安装中文拼音输入法
  15. 爬取某壁纸网站图片(简单爬虫,入门)
  16. 基于墨刀的软件界面原型设计----视频软件
  17. 基于matlab GUI Powell+蚁群算法图像配准
  18. 联想拯救者笔记本安装Win10、Ubuntu16.04双系统
  19. 华为OpenEuler体验系列(06)--软件安装
  20. 李志诉腾讯《明日之子》侵权案获赔20万 1

热门文章

  1. 相关分析-5种常用相关分析方法
  2. 移动支付模式再添新军:指纹支付
  3. Integer和int详解
  4. 2016年linux认证考试,2016年Linux认证考试模拟练习及答案
  5. Tekton系列之实践篇-我的第一条Pipeline
  6. python数组冒号取值(清晰图解)
  7. USB与串口的区别简要总结
  8. 《Vue.js实战》记录
  9. Java程序是如何运行的
  10. 网络攻击肆虐-给你的网络设备来套防弹衣吧!