简介
- snapshot快照仓库用于保存开发过程中的不稳定版本
- release正式仓库则是用来保存稳定的发行版本
策略
- 识别方式:maven会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本。
- snapshot版本更新策略:如果是快照版本,那么在mvn deploy时会自动发布到快照版本库中,而使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的
快照版本。 - release版本更新策略:如果是正式发布版本,那么在mvn deploy时会自动发布到正式版本库中,而使用正式版本的模块,在不更改版本号的情况下,编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务器上下载。
- 使用建议:在开发阶段,可以将公用库的版本设置为快照
版本,而被依赖组件则引用快照版本进行开发,在公用库的快照版本更新后,我们也不需要修改pom文件提示版本号来下载新的版本,直接
mvn执行相关编译、打包命令即可重新下载最新的快照库了,从而也方便了我们进行开发
snapshot版本更新频率
Maven的Repository中有个配置项,可以配置对于SNAPSHOT版本向远程仓库中查找的频率。频率共有四种:always、daily、interval、never。
当本地仓库中存在需要的依赖项目时,
- always是每次都去远程仓库查看是否有更新
- daily是只在第一次的时候查看是否有更新,当天的其它时候则不会查看
- interval允许设置一个分钟为单位的间隔时间,在这个间隔时间内只会去远程仓库中查找一次
- never是不会去远程仓库中查找
Maven的snapshot版本更新策略的配置方式:
<repository>
<id>myRepository</id>
<url>...</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>XXX</updatePolicy>
</snapshots>
</repository>
强制更新snapshot依赖包
如果在使用mvn打包时,希望本次更新最新的snapshot依赖包,则使用如下命令
mvn clean package -U -Dmaven.test.skip=true