Maven学习笔记4-SNAPSHOT学习

1.什么是SNAPSHOT

snapshot,即是快照,快照是一种特殊的版本,指定了某个当前的开发进度的副本。不同于常规的版本,Maven 每次构建都会在远程仓库中检查新的快照。

 

2.SNAPSHOT和RELEASE版本区别

SNAPSHOT版本代表不稳定(快照版本),还在处于开发阶段,随时都会有变化。当上传同样的版本号jar包的时候,SNAPSHOT会在版本号的后面自动追加一串新的数字,即日志标签;

RELEASE则代表稳定的版本(发布版本),一般上线后都会改用RELEASE版本

但我觉得下面这段话讲的很好,文字来源:https://blog.csdn.net/zl1zl2zl3/article/details/60961940#commentBox

 快照版本和正式版本的主要区别在于,本地获取这些依赖的机制有所不同。假设你依赖一个库的正式版本,构建的时候构建工具会先在本次仓库中查找是否已经有了这个依赖库,如果没有的话才会去远程仓库中去拉取。所以假设你发布了Junit-4.10.jar到了远程仓库,有一个项目依赖了这个库,它第一次构建的时候会把该库从远程仓库中下载到本地仓库缓存,以后再次构建都不会去访问远程仓库了。所以如果你修改了代码,向远程仓库中发布了新的软件包,但仍然叫Junit-4.10.jar,那么依赖这个库的项目就无法得到最新更新。你只有在重新发布的时候升级版本,比如叫做Junit-4.11.jar,然后通知依赖该库的项目组也修改依赖版本为Junit-4.11,这样才能使用到你最新添加的功能。

 

我的理解:snapshot可以配置向远程仓库中查找的频率,从而及时拉取最近的版本,方便开发和构建

而RELEASE只有在第一次更新时,会把版本下载在本地使用,不会再从远程仓库拉取版本,除非远程仓库的jar包进行了更新

 

3.SNAPSHOT作用

  1. 标识这个jar是一个不稳定的jar,是一个标识版本的作用。
  2. 使用了SNAPSHOT之后,maven会经常去私服或是中央仓库中拉取最新 的这个jar的版本;而没有SNAPSHOT的jar,则会从本地仓库中查找,本地不存在,才去中央仓库中拉取。
  3. 更新频率:需要在pom.xml文件中进行配置。 updatePolicy: always代表经常性的去拉取最新的jar, daily代表每天拉取一次,interval: 分钟; nerver: 和正式版本一致,不会去拉取最新的jar。
<repositorys>
	<repository>
		<id>****</id>
		<url>***</url>
		<snapshots>
			<enabled>true</enabled>
			<updatePolicy>(always/ daliy/  interval/ nrever)</updatePolicy>
		</snapshot>
	</repository>
</repository>

快照的情况下,Maven在日常工作中会自动获取最新的快照,你也可以在任何Maven命令中使用-U参数强制Maven下载最新的快照构建。命令如下:

maven clean install -U

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值