SNAPSHOT版本

目录

介绍

快照版本和正式版本的区别

SNAPSHOT版本的配置


介绍

        在Nexus仓库中,一个仓库一般分为public(Release)仓和SNAPSHOT仓,前者存放正式版本,后者存放快照版本。

        如果在项目配置文件中(无论是build.gradle还是pom.xml)指定的版本号带有’-SNAPSHOT’后缀,比如版本号为’Junit-4.10-SNAPSHOT’,那么打出的包就是一个快照版本

快照版本和正式版本的区别

        快照版本和正式版本的主要区别在于,本地获取这些依赖的机制有所不同。

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

       SNAPSHOT快照版本的包通过不同配置选择去远程仓库拉取最新包。

        RELEASES版本或没标记RELEASES的包则优先查找本地仓库的包

SNAPSHOT的配置

        在配置Maven的Repository的时候中有个配置项,可以配置对于SNAPSHOT版本向远程仓库中查找的频率。频率共有四种,分别是always、daily、interval、never

always:当本地仓库中存在需要的依赖项目时,always是每次都去远程仓库查看是否有更新
daily:daily是只在第一次的时候查看是否有更新,当天的其它时候则不会查看
interval:interval允许设置一个分钟为单位的间隔时间,在这个间隔时间内只会去远程仓库中查找一次
never:never是不会去远程仓库中查找

<repositories>
    <repository>
        <id>myRepository</id>
        <url>...</url>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
        </snapshots>
    </repository>
</repositories>

        其中updatePolicy就是那4种类型之一。如果配置间隔时间更新,可以写作interval:XX(XX是间隔分钟数)。daily配置是默认值。也可以使用mvn命令强制下载最新的快照版本

maven clean install -U

        经验总结:所以一般在开发模式下,我们可以频繁的发布SNAPSHOT版本,以便让其它项目能实时的使用到最新的功能做联调;当版本趋于稳定时,再发布一个正式版本,供正式使用。当然在做正式发布时,也要确保当前项目的依赖项中不包含对任何SNAPSHOT版本的依赖,保证正式版本的稳定性。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SNAPSHOT版本是指不稳定且仍在开发中的版本,也被称为快照版本。它的版本号以-SNAPSHOT结尾。SNAPSHOT不是一个特定的版本,而是一系列版本的集合,其中HEAD指向最新的快照版本。使用SNAPSHOT版本的客户端可以通过重新构建(有时可能需要使用-U参数强制更新)来获取最新的代码。这给人的印象是新的版本覆盖了旧的版本。 在Maven项目中,根据模块的版本号(pom文件中的依赖版本)是否带有-SNAPSHOT后缀,来判断是快照版本还是正式版本。如果是快照版本,在运行mvn deploy命令时,会自动将快照版本发布到快照版本库中,并覆盖旧的快照版本。而使用快照版本的模块,在不更改版本号的情况下,直接进行编译打包时,Maven会自动从镜像服务器中下载最新的快照版本。如果是正式版本,在运行mvn deploy命令时,会自动将正式版本发布到正式版本库中。而使用正式版本的模块,在不更改版本号的情况下,如果本地已经存在该版本的模块,则不会主动从镜像服务器上下载最新的版本SNAPSHOT版本主要适用于需要频繁更新和快速迭代的开发场景。这样可以方便开发人员在进行增量开发和测试时,随时获取最新的代码和功能。同时,SNAPSHOT版本也可以用于内部测试或者共享给其他团队成员,以便他们及时了解和使用最新的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [MAVENSNAPSHOT版本与RELEASE版本](https://blog.csdn.net/goodjava2007/article/details/123048156)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [SNAPSHOT版本](https://blog.csdn.net/ok3356/article/details/127384253)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值