在使用maven过程。我们经常会在不稳定的状态有很多公共图书馆在发展阶段。需要改变在任何时间和公布,你可能有一天一次发布。经验bug时间,甚至一天公布N次要。我们知道,。maven依赖管理是基于管理的版本号,对于发布状态artifact,假设相同的版本号,即使是我们内部的镜子server上的组件比本地新,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会自己主动从镜像server上下载最新的快照版本号。

假设是正式公布版本号,那么在mvn deploy时会自己主动公布到正式版本号库中。而使用正式版本号的模块。在不更改版本号号的情况下,编译打包时假设本地已经存在该版本号的模块则不会主动去镜像server下载。

所以,我们在开发阶段,公共图书馆的版本号可以设置为快照版本。是依赖组件被引用的快照版本开发。快照版本更新的公共图书馆后。我们并不需要改变pom文件版本号提示下载新的版本号,直接mvn编译相关的操作、包装命令可以重新下载最新的快照库,从而促进我们的发展。

maven snapshot和release版本号之间的差的更多相关文章

  1. maven snapshot和release版本的区别

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

  2. maven snapshot和release版本的区别(转)

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

  3. (转) maven snapshot和release版本的区别

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

  4. 【Maven】Snapshot和Release版本的区别

    Snapshot版本代表不稳定.尚处于开发中的版本,快照版本. Release版本则代表稳定的版本,发行版本. 什么时候用Snapshot版本? 依赖库中的jar正处于开发的阶段,会被经常被更新,这种 ...

  5. 你与优秀源码之间只差一个 Star

    fir.im Weekly - 你与优秀源码之间只差一个 Star   说起开源社区,Github 是一个不可缺少的存在.作为全球最大的同性交友网站,上面有太多优秀的开源代码库和编程大神,让无数开发者 ...

  6. 从SVN导出指定版本号之间修改的文件(转)

    从SVN导出指定版本号之间修改的文件(转)   当一个网站项目进入运营维护阶段以后,不会再频繁地更新全部源文件到服务器,这个时间的修改大多是局部的,因此更新文件只需更新修改过的文件,其他没有修改过的文 ...

  7. Eclipse使用Maven创建普通Java工程时错误:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart:RELEASE from any of the configured repositories.

    报错信息如下: Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart:RELEASE f ...

  8. java类和对象之间的差

    java类和对象之间的差别是一个普遍的问题,刚开始学习java当它来到与类和对象接触.今天就来总结一下它们之间的差异. 先说说class和object差异.事实上,词:object是全部class的父 ...

  9. Jquery计算时间戳之间的差值,可返回年,月,日,小时等

    /** * 计算时间戳之间的差值 * @param startTime 开始时间戳 * @param endTime 结束时间戳 * @param type 返回指定类型差值(year, month, ...

随机推荐

  1. hdu 4291 A Short problem(矩阵+取模循环节)

    A Short problem                                                          Time Limit: 2000/1000 MS (J ...

  2. fzu2150(bfs)

    题目链接:http://acm.fzu.edu.cn/problem.php?pid=2150 题意:在任意两处点火,求最短时间烧光所有草堆. 分析:由于n,m比较小,将所有草堆坐标记录下来,然后暴力 ...

  3. ORA-12520错误解决一则

    问题描写叙述: 今天突然发现连接数据库时报错,用pl/sql dev连接数据时,有时能连接上,有时连接时报: ORA-12520: TNS: 监听程序无法找到须要的server类型的可用句柄 通过se ...

  4. jQuery中的getJSON()

    json文件是一种轻量级的数据交互格式.一般在jQuery中使用getJSON()方法读取. $.getJSON(url,[data],[callback]) url:json文件地址 data:可选 ...

  5. BGP的状态机制

    Idle 状态:即空闲状态,不接受任何BGP的连接,等待Start事件的产生,如果有start事件产生,若有start事件产生,系统开启ConnectRetry定时器,向邻居发起TCP连接,并将状态变 ...

  6. Eclipse扩展点实践之添加快捷菜单项(Command方式实现)

    有两种方式,一种是Action的方式,另一种是Command的方式(这两种方式的区别详见:http://wiki.eclipse.org/FAQ_What_is_the_difference_betw ...

  7. nginx学习12 ngx_cycle_t 和 ngx_init_cycle

    在nginx在启动过程,ngx_init_cycle这个函数最初始工作.变量的初始化存储在ngx_cycle_t这个结构体中,为了深入了解这个函数都做了那些初始化工作,就化时间研究了一下.并写下来以便 ...

  8. 用css3实现各种图标效果

    原文:用css3实现各种图标效果 公共样式 应该说现在绝大多数公司的项目前端都是一团乱,不仅仅是js写的没有任何框架而言,css同样也是如此,导致项目如果要升级或者说有新的变更维护起来就特别困难. 最 ...

  9. 用NMAKE创建VS2012 C++工程 HelloWorld

    由于需要精通GDAL的源代码,所以还是有必要精通NMAKE,先来尝试创建一个NMAKE工程. 之前一篇文章Windows7中Emacs 24 shell使用Gitbash已经介绍了如何在Emacs的s ...

  10. Xamarin For Visual Studio 3.7.165 完整离线破解版

    原文 Xamarin For Visual Studio 3.7.165 完整离线破解版 Xamarin For Visual Studio就是原本的Xamarin For Android 以及 Xa ...