https://leokongwq.github.io/2017/08/24/understanding-maven-snapshot.html

一次针对现有的http服务开发了一个SNAPSHOT版本的调用SDK jar包。QA同学部署到测试环境后,我又更新了一下jar包的内容,此时QA同学再次部署时并没有拉去到最新的jar包,这个就比较奇怪了。记忆中maven不是每次都从私服去检查
SNAPSHOT类型的jar包是否有更新吗?怎么对我就不起作用了呢?原来也是一直这么使用的的,换个公司就不行了?最后通过阅读官方文档才发现自己的理解不到位。

为什么使用SNAPSHOT类型的依赖?

答案当然是不想每次有点代码改动都升级一下版本。

maven如何处理SNAPSHOT类型的依赖?

第一次构建的时候会把该库从远程仓库中下载到本地仓库缓存中,然后根据pom文件的配置不定期检查该快照版本是否有变更。如果有变更则会重新拉去最新的jar。

检查频率配置

1
2
3
4
5
6
7
8
<repository>
<id>myRepository</id>
<url>...</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>更新策略</updatePolicy>
</snapshots>
</repository>

更新策略有一下几种:

  • always 每次构建都检查远程仓库中该依赖jar包是否有更新
  • daily 每天检查一次 (默认策略)
  • interval:XXX 指定检查时间间隔,单位是分钟。
  • never 从不检查。该策略就和正式版本的处理规则一样了。

参考

http://maven.apache.org/ref/3.5.0/maven-settings/settings.html

理解maven中SNAPSHOT版本的作用的更多相关文章

  1. maven 中snapshot版本和release版本的区别

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

  2. Maven的Snapshot版本与Release版本

    1. Snapshot版本代表不稳定.尚处于开发中的版本 2. Release版本则代表稳定的版本 3. 什么情况下该用SNAPSHOT? 协同开发时,如果A依赖构件B,由于B会更新,B应该使用SNA ...

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

    Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...

  4. maven中snapshot快照库和release发布库的区别和作用 (转)

    Maven介绍,包括作用.核心概念.用法.常用命令.扩展及配置 http://www.trinea.cn/android/maven/ 本文来源于铁木箱子的博客http://www.mzone.cc ...

  5. maven中snapshot快照库和release发布库的区别和作用

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

  6. maven的SNAPSHOT版本和正式版本不同

    转载文章: http://www.huangbowen.net/blog/2016/01/29/understand-official-version-and-snapshot-version-in- ...

  7. maven中的distributionManagement的作用

    mvn install  会将项目生成的构件安装到本地Maven仓库,mvn deploy 用来将项目生成的构件分发到远程Maven仓库. 本地Maven仓库的构件只能供当前用户使用,在分发到远程Ma ...

  8. Maven的SNAPSHOT版本找不到

    有时一个SNAPSHOT版本的包,明明打包部署到私服了,却还是报错找不到,比如: [WARNING] The POM for com.foo:bar:jar:0.4.0-20130404.093655 ...

  9. 理解 python 中__name__ = '__main__' 的作用

    很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ...

随机推荐

  1. 【读书笔记】iOS-iOS敏捷开发

    敏捷开发分为几个不同的门派,如:Scrum,XBreed,极限编程(XP Extreme Programming)和水晶方法等. 参考资料:<iOS传感器应用开发最佳实践>  

  2. Salesforce DX 简介

    Salesforce DX Salesforce DX (Salesforce Developer Experience) 是 Salesforce 推出的一个新的开发和部署模式,旨在提供更好的开发者 ...

  3. SoapUI 利用SoapUI进行简单的接口并发测试

    利用SoapUI进行简单的接口并发测试 by:授客 QQ:1033553122 测试环境: SoapUI Pro 5.1.2 步骤如下 1.   把请求添加到测试套件 1.1.     途径1 1.新 ...

  4. C# JObject和JArray 的分享

    最近在调用别人的搜索引擎接口时遇到了一种返回类型为数组的情况,如 {  "result": [     //根据用户输入搜索匹配到的标题数组         "我是一条新 ...

  5. puppeteer入门

    转自: https://www.jianshu.com/p/a89d8d6c007b 作者: ppCode puppeteer新手入门(chromium下载跳坑) ppCode 关注 2017.12. ...

  6. 简单整理关于C#和Java的区别

    相信每个程序猿都有自己最喜欢的编程语言,然而对于编程语言似乎形成一条独特的鄙视链,就如Java和C#常常两边的开发者都是相互鄙视,然后他们一起共同鄙视全世界最好的编程语言——PHP 哈哈,但是其实我想 ...

  7. 高通 sensor 从native到HAL

    app注册传感器监听 Android Sensor Framework 的整体架构如下图所示: 前几篇sensor相关的文章介绍了sensor的hal的知识,以press_sensor实时显示气压坐标 ...

  8. HDU ACM 1224 Free DIY Tour (SPFA)

    Free DIY Tour Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  9. 鸟哥的 Linux 私房菜Shell Scripts篇(一)

    参考: http://linux.vbird.org/linux_basic/0340bashshell-scripts.php#script_be http://www.runoob.com/lin ...

  10. 【PAT】B1073 多选题常见计分法(20 分)

    此处为我的存储结构,只提供一种思路,二维数组存储所有数据 #include<stdio.h> #include<string.h> #include<map> #i ...