mvn snapshot理解

简介

  • 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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • |-1-更新内容[6.从仓库解析依赖的机制(重要)] 1Maven仓库作用 仓库用来存储所有项目使用到构件,在ma...
    zlcook阅读 6,117评论 0 25
  • Maven的基本了解 什么是Maven? Maven就是Apache下的一个开源项目。它是用纯java开发的。是一...
    Bcome阅读 2,859评论 0 7
  • 目前在看nexus私服章节的知识时需要用到仓库与镜像的知识,正好通过简书把仓库和镜像章节的笔记整理一下 仓库 ma...
    小炼君阅读 1,305评论 0 48
  • Maven 笔记 https://www.yiibai.com/maven/enable-proxy-settin...
    点点渔火阅读 938评论 0 3
  • 一、场景 一个大型的软件应用通常包含多个模块,并且通常的场景是多个团队开发同一应用的不同模块。举个例子,设想一个团...
    聂叼叼阅读 405评论 0 0