温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

什么是maven快照 更新策略

发布时间:2021-10-19 16:50:10 来源:亿速云 阅读:296 作者:柒染 栏目:大数据

什么是maven快照 更新策略,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1、为什么会有快照?

没有快照之前:

                  A项目依赖于项目B,B每次改动就赋予一个新版本号,然后告诉A我改版本好了啊,每次改动都得告诉,有时忘了就麻烦了。

               可以看出没有快照会带来“浪费版本号”、沟通成大加大的问题。

有了快照之后:

               A项目依赖于项目B,B每次改动都会打上时间戳,A编译时会检查B的时间戳,如果晚于本地仓库B的时间戳,那么就会进行更新,否则不予更新。

             可以看出快照省去了沟通成本、版本号成本。

2、快照更新策略

注意,快照并不是每次install就会更新,这取决于更新策略;快照更新策略,有每日更新、永远检查更新、从不检查更新和自定义时间间隔更新,默认是每日更新也就是说一日更新一次,如果想总是更新,那么可以在settings.xml中配置。比如

<profile>
            <id>nexus</id>
            <repositories>
                <repository>
                    <id>central</id>
                    <url>http://central</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </repository>
            </repositories>
</profile>


也可以通过命令强制更新,mvn clean install-U

一次针对现有的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快照 更新策略的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI