Maven 的Snapshot版本和Release版本

一、Snapshot 版本表明不稳定、尚处于开发中的版本。缓存

二、Release 版本则表明稳定的版本。ide

三、什么状况下该用 SNAPSHOT?开发

协同开发时,若是 A 依赖构件 B,因为 B 会更新,B 应该使用 SNAPSHOT 来标识本身。这种作法的必要性能够反证以下:it

a. 若是 B 不用 SNAPSHOT,而是每次更新后都使用一个稳定的版本,那版本号就会升得太快,天天一升甚至每一个小时一升,这就是对版本号的滥用。
b.若是 B 不用 SNAPSHOT, 但一直使用一个单一的 Release 版本号,那当 B 更新后,A 可能并不会接受到更新。由于 A 所使用的 repository 通常不会频繁更新 release 版本的缓存(即本地 repository),因此B以不换版本号的方式更新后,A在拿B时发现本地已有这个版本,就不会去远程Repository下载最新的 B
四、 不用 Release 版本,在全部地方都用 SNAPSHOT 版本行不行? class

不行。正式环境中不得使用 snapshot 版本的库。 好比说,今天你依赖某个 snapshot 版本的第三方库成功构建了本身的应用,明天再构建时可能就会失败,由于今晚第三方可能已经更新了它的 snapshot 库。你再次构建时,Maven 会去远程 repository 下载 snapshot 的最新版本,你构建时用的库就是新的 jar 文件了,这时正确性就很难保证了。下载

相关文章
相关标签/搜索