本文来说下Maven的SNAPSHOT版本有什么作用
问题
在使用maven进行依赖管理时,有的版本号后面会带有"-SNAPSHOT",有什么作用呢?
<dependency><groupId>com.smallbeef</groupId><artifactId>dubbo-interface</artifactId><version>1.0-SNAPSHOT</version>
</dependency><!--引入dubbo的依赖-->
<dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.0.0</version>
</dependency><!-- 引入zookeeper的依赖 -->
<dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.10</version>
</dependency>
解决
带有"-SNAPSHOT"表示使用的依赖为快照版本,不带"-SNAPSHOT"为正式版本。
正式版本"abc-1.0"
构建的时候会先在本地仓库中查找是否已经有了这个依赖库,若是没有的话才会去远程仓库中去拉取。
假设项目中现在依赖"abc-1.0",在第一次构建的时候会把该库从远程仓库中下载到本地仓库缓存,之后再次构建都不会去访问远程仓库了。如果远程仓库中代码进行了修改,但版本号依旧叫"abc-1.0",那么此依赖没法获得最新更新。只有版本号更新后(如"abc-1.1")才能拉取到最新代码。
快照版本"abc-1.0-SNAPSHOT"
每次构建时,会优先去远程仓库中查看是否有最新的"abc-1.0-SNAPSHOT.jar",若是有则下载下来使用。即便本地仓库中已经有了"abc-1.0-SNAPSHOT.jar",它也会尝试去远程仓库中查看同名的jar是不是最新的。在配置Maven的Repository的时候中有个配置项,能够配置对于SNAPSHOT版本向远程仓库中查找的频率。频率共有四种,分别是always、daily、interval、never。
频率 | 详情 |
---|---|
always | 每次都去远程仓库查看是否有更新 |
daily | 每天只在第一次的时候查看是否有更新,当天的其它时候则不会查看 |
interval | 容许设置一个分钟为单位的间隔时间,在这个间隔时间内只会去远程仓库中查找一次 |
never | 不会去远程仓库中查找(和正式版本相同) |
本文小结
本文介绍了Maven快照(SNAPSHOT)相关的知识与内容。
---------------------
作者:wh柒八九
来源:CSDN
原文:https://blog.csdn.net/qq_31960623/article/details/123504862
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件