一、 Alpha:
Alpha是内部测试版,表示最初的版本,通常不向外部发布。Alpha版会有不少Bug,除非你想去测试最新的功能,不然通常不建议使用。测试
二、Beta:
该版本相对于Alpha版已有了很大的改进,消除了严重的错误,但仍是存在着一缺陷,须要通过屡次测试来进一步消除。这个阶段的版本会一直加入新的功能。
三、RC:(Release Candidate)
Candidate是候选人的意思,用在软件上就是候选版本。Release.Candidate.就是发行候选版本。和Beta版最大的差异在于Beta阶段会一直加入新的功能,可是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错! RC版本是最终发放给用户的最接近正式版的版本,发行后改正bug就是正式版了,就是正式版以前的最后一个测试版。
四、GA:(general availability)
好比:Apache Struts 2 GA这是Apache Struts 2首次发行稳定的版本,GA意味着General Availability,也就是官方开始推荐普遍使用了
五、Release
该版本意味“最终版本”,在前面版本的一系列测试版以后,终归会有一个正式版本,是最终交付用户使用的一个版本。该版本有时也称为标准版。通常状况下,Release不会以单词形式出如今软件封面上,取而代之的是符号(R)。
六、SNAPSHOT
快照版,可以稳定使用,且仍在继续改进版本。
snapshot 多见于架包依赖中,使用 Maven 时,需要的架包回去仓库 Nexus 中找。一个仓库一般分为 RELEASE 仓和 SNAPSHOT 仓快照版,前者为稳定正式版本,后者为非稳定版本。Maven 在构建项目时,会优先去远程仓库中查看是否有最新的 example-1.0-SNAPSHOT.jar,如果有则下载下来使用。即使本地仓库中已经有了 example-1.0-SNAPSHOT.jar,它也会尝试去远程仓库中查看同名的 jar 是否是最新的(有更新策略)。
有的人可能会问,这样不就不能充分利用本地仓库的缓存机制了吗?别着急,Maven 比我们想象中的要聪明。在配置 Maven 的 Repository 的时候中有个配置项,可以配置对于 SNAPSHOT 版本向远程仓库中查找的频率。频率共有四种,分别是always、daily、interval、never
。
当本地仓库中存在需要的依赖项目时:
- always 是每次都去远程仓库查看是否有更新;
- daily 是只在第一次的时候查看是否有更新,当天的其它时候则不会查看;
- interval 允许设置一个分钟为单位的间隔时间,在这个间隔时间内只会去远程仓库中查找一次;
- never 是不会去远程仓库中查找(这种就和正式版本的行为一样了