大多数Spring项目都是以“主版本号.次版本号.增量版本号.里程碑版本号”的形式命名版本号的,例如Spring Framework稳定版本4.3.5.RELEASE、里程碑版本5.0.0.M 4等。其中,主版本号表示项目的重大重构;次版本号表示新特性的添加和变化;增量版本号一般表示Bug修复;里程碑版本号表示某版本号的里程碑。
然而,Spring Cloud并未使用这种方式管理版本。下面来详细探讨一下Spring Cloud的版本。
先看一下Spring Cloud的版本,如图2-1所示。
由图2-1可知,SpringCloud是以英文单词SRX(X为数字)的形式命名版本号的。那么英文单词和SR分别表示什么呢?
Spring Cloud是一个综合项目,它包含很多的子项目。由于子项目也维护着自己的版本号,Spring Cloud采用了这种版本命名方式,从而避免与子项目的版本混淆。其中,英文单词叫作“release train”,Camden、Dalston、Edgware等都是伦敦地铁站的名称,它们按照字母顺序发行,可将其理解为主版本的演进。SR表示“ServiceRelease”,一般表示Bug修复;在SR版本发布之前,会先发布一个Release版本,例如,在发布Edgware SR1之前,会先发布EdgwareRELEASE。
图2-1 Spring Cloud版本
经过以上讲解,相信大家就能很好地理解Spring Cloud的版本了。例如,Dalston SR4表示Dalston版本的第4次Bug修复版本。
●Spring Cloud版本发布记录可详见: https://github.com/spring-cloud/springcloud-release/releases ,从中可清晰地看到Spring Cloud版本发布的时间及先后顺序。
●Spring Cloud版本演进计划: https://github.com/spring-cloud/spring-cloudrelease/m ilestones ,从中可了解Spring Cloud未来的版本演进计划。
●事实上,Spring有不少项目使用类似的命名方式。例如SpringData( http://projects.spring.io/spring-data/ )、Spring Cloud Stream( http://cloud.spring.io/spring-cloud-stream/ )等。
●目前,SpringCloud已经发布了Angel、Brixton、Camden、Dalston、Edgware,Finchley也发行了RC2版本,正式版也会在2018年第二季度发布。
●Angel、Brixton已在2017年7月宣布停止维护,不建议使用。读者可前往 https://spring.io/blog/2017/07/21/spring-cloud-dalston-sr2-is-availablenow#end-of-life-for-angel-and-brixton-release-trains 查看相关详情。
理解Spring Cloud的版本后,来看一下各版本Spring Cloud包含的子项目及版本,如表2-1所示。
表2-1 Sp ring Cloud各版本组件
从中不难发现,Camden版本包含的子项目相对较少;Dalston、Edgware则提供了更多的组件。相信随着项目的迭代,Spring Cloud会提供更多的组件与更丰富的特性,从而让开发更加简单、快速。
●Angel版本基于Spring Boot1.2.x构建,在一些场景下,与Spring Boot1.3.x及以上版本不兼容。
●Brixton版本基于Spring Boot1.3.x构建,也可使用1.4.x进行测试,与Spring Boot1.2.x不兼容。
●Camden版本基于Spring Boot1.4.x构建,也可使用1.5.x进行测试。
●Dalston版本基于Spring Boot1.5.x构建,不兼容Spring Boot2.0.x。
●Edgware版本基于Spring Boot1.5.x构建,不兼容Spring Boot2.0.x。
●Finchley版本基于Spring Boot2.0.x构建,不兼容Spring Boot1.x。
读者可前往 http://projects.spring.io/spring-cloud/ 查看版本兼容性。