maven的 SNAPSHOT和RELEASE版本说明
程序员文章站
2024-03-21 11:00:28
...
SnapshSNAPSHOTot和RELEASE区别
Snapshot:代表版本不稳定,尚处于开发当中,Release则代表稳定版本
- 如果deploy到远程服务器,如果是release则只能deploy一次,以后部署的话则会造成冲突
- 如果是Snapshot的话,你可以多deploy几次,每一次都会冲掉院线的版本
什么情况下用SNAPSHOT?
-
协同开发时候,如果A依赖B由于B会更新,则B应该标记SNAPSHOT
1.1 因为如果B不用SNAPSHOT而每次更新后都使用一个稳定版本,那么版本号就会升的太快,每天一升或者每小时升,就会造成版本号的乱用
1.2 如果B不用SNAPSHOT,但一直使用一个单一的Release版本号,那当B更新后,A可能并不会接受到更新。因为A所使用的repository一般不会频繁更新release版本的缓存(即本地repository),所以B以不换版本的方式更新,A在拿B时发现本地已有这个版本,就不会去远程Repository下载最新的B
不用Release版本行不行?
- 不行,正式环境中不得不使用SNAPSHOT版本库,例如:今天你依赖某个snapshot版本的第三方库成功构建了自己的应用,明天再构建时可能就会失败,因为今晚第三方可能已经更新了它的snapshot库。你再次构建时,Maven会去远程repository下载snapshot的最新版本,你构建时用的库就是新的jar文件了,这时正确性就很难保证了。
什么是release?
如下图所示:
-用户A将代码打包到RELEASE仓库。用户B使用时,需要在pom.xml添加jar包的依赖坐标。如果用户A将jar包版本从1.0升级到2.0,用户B使用时也需要在pom.xml中修改坐标版本。但是RELEASE表示是稳定版本,是经过测试以后才会发布的,通常不会频繁地升级版本。
快照SNAPSHOT?
-SNAPSHOT是不稳定版本,可能是还在开发中的版本,在开发时用户A可能每天都会更新代码,可能会频繁地发布版本.而另一组用户B需要实时得到A的最新代码版本,,以进行同步开发。如果使用RELEASE仓库需要不停地更换坐标,才能升级到最新版本。而在SNAPSHOT仓库则不需要这么做,用户A和用户B都不用升级版本。用户A每次发布时会根据当时的时间创建一个新的快照版本,之前的吧、快照版本也会保留成为历史版本。用户B每次构建项目时会自动根据版本时间加载最新的依赖jar包。所以这种模式更加适合于多模块同步开发测试阶段。
推荐阅读
-
maven的 SNAPSHOT和RELEASE版本说明
-
maven的target和source版本
-
Maven中指定Java的编译版本和源文件编码方式
-
Android同时安装Release和Debug版本的方法
-
Maven 修改tomcat运行版本和端口的实现方法
-
【踩坑记录】(报错:找不到程序包和符号)2020.1版本的idea,使用Maven时本地仓库路径的配置
-
Android同时安装Release和Debug版本的方法
-
Maven 修改tomcat运行版本和端口的实现方法
-
HTML和CSS中判断IE版本并实现相应HTML和CSS的详细说明
-
HTML和CSS中判断IE版本并实现相应HTML和CSS的详细说明