Maven 主要是这样定义版本规则的:<主版本>.<次版本>.<增量版本> 。比如说 1.2.3 ,主 版本是 1 ,次版本是 2 ,增量版本是 3 。

  • 主版本,一般来说代表了项目的重大的架构变更,比如说 Maven 1 和 Maven 2 ,在架构上已经两样了,将来的 Maven 3 和 Maven 2 也会有很大的变化。
  • 次版本,一般代表了一些功能的增加或变化,但没有架构的变化,比如说Nexus 1.3 较之 于 Nexus 1.2 来说,增加了一系列新的或者改进的功能(仓库镜像支持,改进的仓库管理界面等等),但从大的架构上来说,1.3 和 1.2 没什么区别。
  • 增量版本,一般是一些小的 bug fix ,不会有重大的功能变化。

一般来说,在我们发布一次重要的版本之后,随之会开发新的版本。比如说,myapp-1.1 发布之后,就着手开发 myapp-1.2 了。由于myapp-1.2 有新的主要功能的添加和变化,在发布测试前,它会变得不稳定,而 myapp-1.1 是一个比较稳定的版本,现在的问题是,我们在 myapp-1.1中 发现了一些 BUG(当然在 1.2 中也存在),为了能够在一段时间内修复 BUG 并 仍然发布稳定的版本,我们就会用到分支(branch),我们基于 1.1 开启一个分支 1.1.1 ,在这个 分支中修复 BUG ,并快速发布。这既保证了版本的稳定,也能够使bug得到快速修复,也不同 停止 1.2 的开发。只是,每次修复分支 1.1.1 中的 BUG 后,需要 merge 代码到 1.2 中。