Maven的Snapshot版本与Release版本
来源:互联网 发布:ubuntu 14.04 重装 编辑:程序博客网 时间:2024/09/21 08:56
一直在使用maven,对于pom中的一些配置没有很深究,知道有一天,为什么要加snapshot?
网上一搜,有一篇文章不错,转载来,以便自己能够加深记忆
1. Snapshot版本代表不稳定、尚处于开发中的版本
2. Release版本则代表稳定的版本
3. 什么情况下该用SNAPSHOT?
协同开发时,如果A依赖构件B,由于B会更新,B应该使用SNAPSHOT来标识自己。这种做法的必要性可以反证如下:
a.如果B不用SNAPSHOT,而是每次更新后都使用一个稳定的版本,那版本号就会升得太快,每天一升甚至每个小时一升,这就是对版本号的滥用。
b.如果B不用SNAPSHOT, 但一直使用一个单一的Release版本号,那当B更新后,A可能并不会接受到更新。因为A所使用的repository一般不会频繁更新release版本的缓存(即本地repository),所以B以不换版本号的方式更新后,A在拿B时发现本地已有这个版本,就不会去远程Repository下载最新的B
4. 不用Release版本,在所有地方都用SNAPSHOT版本行不行?
不行。正式环境中不得使用snapshot版本的库。 比如说,今天你依赖某个snapshot版本的第三方库成功构建了自己的应用,明天再构建时可能就会失败,因为今晚第三方可能已经更新了它的snapshot库。你再次构建时,Maven会去远程repository下载snapshot的最新版本,你构建时用的库就是新的jar文件了,这时正确性就很难保证了。
2. Release版本则代表稳定的版本
3. 什么情况下该用SNAPSHOT?
协同开发时,如果A依赖构件B,由于B会更新,B应该使用SNAPSHOT来标识自己。这种做法的必要性可以反证如下:
a.如果B不用SNAPSHOT,而是每次更新后都使用一个稳定的版本,那版本号就会升得太快,每天一升甚至每个小时一升,这就是对版本号的滥用。
b.如果B不用SNAPSHOT, 但一直使用一个单一的Release版本号,那当B更新后,A可能并不会接受到更新。因为A所使用的repository一般不会频繁更新release版本的缓存(即本地repository),所以B以不换版本号的方式更新后,A在拿B时发现本地已有这个版本,就不会去远程Repository下载最新的B
4. 不用Release版本,在所有地方都用SNAPSHOT版本行不行?
不行。正式环境中不得使用snapshot版本的库。 比如说,今天你依赖某个snapshot版本的第三方库成功构建了自己的应用,明天再构建时可能就会失败,因为今晚第三方可能已经更新了它的snapshot库。你再次构建时,Maven会去远程repository下载snapshot的最新版本,你构建时用的库就是新的jar文件了,这时正确性就很难保证了。
0 0
- Maven的Snapshot版本与Release版本
- Maven的Snapshot版本与Release版本
- Maven的Snapshot版本与Release版本
- Maven的Snapshot版本与Release版本
- Maven的Snapshot版本与Release版本
- Maven中Snapshot版本与Release版本的区别
- maven snapshot和release版本的区别
- maven snapshot和release版本的区别
- maven snapshot和release版本的区别
- maven snapshot和release版本的区别
- 【Maven】Snapshot和Release版本的区别
- maven snapshot和release版本的区别
- maven snapshot和release版本的区别
- maven snapshot和release版本的区别
- 关于maven版本管理 SNAPSHOT RELEASE(version)
- 如何发布maven的SNAPSHOT版本
- Maven的配置文件中版本使用-SNAPSHOT
- maven 中的快照版本的讲解(SNAPSHOT)
- [LeetCode] Sqrt(x)
- Android 中的DisplayMetrics类的用法
- BBB学习之路
- 获取对象的类名,属性及方法列表
- 关于transform的一些用法
- Maven的Snapshot版本与Release版本
- 天猫11.11:搜索引擎实时秒级更新
- 电容、频率之间的关系
- 影视并购,是谁写的万能故事大纲?
- HDU 3853 期望概率DP
- Python访问MySQL封装的常用类实例
- 安卓滤镜效果
- error:“0x0000 0001”指令引用的““0x0000 0001””内存,该内存不能为“read”
- iOS 7 UI 过渡指南 - 支持续 iOS 6(iOS 7 UI Transition Guide - Supporting iOS 6)