构建生命周期
表格出自 www.runoob.com
Maven 的 Snapshot 版本与 Release 版本
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 文件了, 这时正确性就很难保证了.
来源: http://www.bubuko.com/infodetail-2965846.html