Maven中的SNAPSHOT版本和正式版本

理解Maven中的SNAPSHOT版本和正式版本

在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个属性构成的,分别是:groupId、artifactId以及version。

这三个属性可以唯一确定一个组件。

我们只需要将在(版本号)中加入一个SNAPSHOT,执行maven install,打包出来的就是一个快照的版本

快照版本和正式版本的主要区别在于,本地获取的依赖的机制不同。

假设你发布了Junit-4.10.jar到了远程仓库,有一个项目依赖了这个库,它第一次构建的时候会把该库从远程仓库中下载到本地仓库缓存,以后再次构建都不会去访问远程仓库了。如果你修改了代码,向远程仓库中发布了新的软件包,但仍然叫Junit-4.10.jar,那么依赖这个库的项目就无法得到最新更新。你只有在重新发布的时候升级版本,比如叫做Junit-4.11.jar,然后通知依赖该库的项目组也修改依赖版本为Junit-4.11,这样才能使用到你最新添加的功能。

而对于快照版本而言,每次在进行构建时,都会优先去远程仓库中查看是否有最新的快照版本,如果有的话,则会进行及时的更新。我们可以自定义maven去拉取的间隔,如:always(总是进行查看)、daily(一天更新一次)、interval (设置一个时间的间隔)、never(从不)。

所以一般在开发模式下,我们可以频繁的发布SNAPSHOT版本,以便让其它项目能实时的使用到最新的功能做联调;当版本趋于稳定时,再发布一个正式版本,供正式使用。当然在做正式发布时,也要确保当前项目的依赖项中不包含对任何SNAPSHOT版本的依赖,保证正式版本的稳定性。

上一篇:MySQL查询数据库表空间大小


下一篇:DQL:data query language用来查询数据库表中的数据