1. 程式人生 > >Spring-Cloud的版本定義與名字 侵立刪

Spring-Cloud的版本定義與名字 侵立刪

轉自:https://blog.csdn.net/peterwanghao/article/details/79633275

 

Spring Cloud是一個由眾多獨立子專案組成的大型綜合專案,每個子專案有不同的發行節奏,都維護著自己的釋出版本號。Spring Cloud通過一個資源清單BOM(Bill of Materials)來管理每個版本的子專案清單。為避免與子專案的釋出號混淆,所以沒有采用版本號的方式,而是通過命名的方式。

這些版本名稱的命名方式採用了倫敦地鐵站的名稱,同時根據字母表的順序來對應版本時間順序,比如:最早的Release版本:Angel,第二個Release版本:Brixton,然後是Camden、Dalston、Edgware,目前最新的是Finchley版本。

當一個版本的Spring Cloud專案的釋出內容積累到臨界點或者解決了一個嚴重bug後,就會發佈一個“service releases”版本,簡稱SRX版本,其中X是一個遞增數字。當前官網上最新的穩定版本是Edgware.SR2,里程碑版本是Finchley.M7。下表列出了這兩個版本所包含的子專案及各子專案的版本號。

Component    Edgware.SR2    Finchley.M7    Finchley.BUILD-SNAPSHOT
spring-cloud-aws    1.2.2.RELEASE    2.0.0.M4    2.0.0.BUILD-SNAPSHOT
spring-cloud-bus    1.3.2.RELEASE    2.0.0.M6    2.0.0.BUILD-SNAPSHOT
spring-cloud-cli    1.4.1.RELEASE    2.0.0.M1    2.0.0.BUILD-SNAPSHOT
spring-cloud-commons    1.3.2.RELEASE    2.0.0.M7    2.0.0.BUILD-SNAPSHOT
spring-cloud-contract    1.2.3.RELEASE    2.0.0.M7    2.0.0.BUILD-SNAPSHOT
spring-cloud-config    1.4.2.RELEASE    2.0.0.M7    2.0.0.BUILD-SNAPSHOT
spring-cloud-netflix    1.4.3.RELEASE    2.0.0.M7    2.0.0.BUILD-SNAPSHOT
spring-cloud-security    1.2.2.RELEASE    2.0.0.M2    2.0.0.BUILD-SNAPSHOT
spring-cloud-cloudfoundry    1.1.1.RELEASE    2.0.0.M3    2.0.0.BUILD-SNAPSHOT
spring-cloud-consul    1.3.2.RELEASE    2.0.0.M6    2.0.0.BUILD-SNAPSHOT
spring-cloud-sleuth    1.3.2.RELEASE    2.0.0.M7    2.0.0.BUILD-SNAPSHOT
spring-cloud-stream    Ditmars.SR3    Elmhurst.RC1    Elmhurst.BUILD-SNAPSHOT
spring-cloud-zookeeper    1.2.0.RELEASE    2.0.0.M6    2.0.0.BUILD-SNAPSHOT
spring-boot    1.5.10.RELEASE    2.0.0.RC2    2.0.0.BUILD-SNAPSHOT
spring-cloud-task    1.2.2.RELEASE    2.0.0.M3    2.0.0.RELEASE
spring-cloud-vault    1.1.0.RELEASE    2.0.0.M6    2.0.0.BUILD-SNAPSHOT
spring-cloud-gateway    1.0.1.RELEASE    2.0.0.M7    2.0.0.BUILD-SNAPSHOT
spring-cloud-openfeign        2.0.0.M1    2.0.0.BUILD-SNAPSHOT
Finchley 與 Spring Boot 2.0.x, 相容,不支援 Spring Boot 1.5.x. 
Dalston 和 Edgware 與 Spring Boot 1.5.x, 相容,不支援 Spring Boot 2.0.x. 
Camden 是構建在 Spring Boot 1.4.x, 之上,但也支援 1.5.x. 
Brixton 是構建在 Spring Boot 1.3.x, 之上,但也支援 1.4.x. 
Angel 是構建在 Spring Boot 1.2.x, 之上,但也相容 Spring Boot 1.3.x. 
注意: Angel 和 Brixton 兩個版本已於2017年7月終止不再進行維護。
 

http://spring.io/projects/spring-cloud

Release Trains

Spring Cloud is an umbrella project consisting of independent projects with, in principle, different release cadences. To manage the portfolio a BOM (Bill of Materials) is published with a curated set of dependencies on the individual project (see below). The release trains have names, not versions, to avoid confusion with the sub-projects. The names are an alphabetic sequence (so you can sort them chronologically) with names of London Tube stations ("Angel" is the first release, "Brixton" is the second). When point releases of the individual projects accumulate to a critical mass, or if there is a critical bug in one of them that needs to be available to everyone, the release train will push out "service releases" with names ending ".SRX", where "X" is a number.

Table 1. Release train Spring Boot compatibility
Release Train Boot Version

Greenwich

2.1.x

Finchley

2.0.x

Edgware

1.5.x

Dalston

1.5.x

Table 2. Release train contents
Component Edgware.SR5 Finchley.SR2 Finchley.BUILD-SNAPSHOT

spring-cloud-aws

1.2.3.RELEASE

2.0.1.RELEASE

2.0.1.BUILD-SNAPSHOT

spring-cloud-bus

1.3.3.RELEASE

2.0.0.RELEASE

2.0.1.BUILD-SNAPSHOT

spring-cloud-cli

1.4.1.RELEASE

2.0.0.RELEASE

2.0.1.BUILD-SNAPSHOT

spring-cloud-commons

1.3.5.RELEASE

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-contract

1.2.6.RELEASE

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-config

1.4.5.RELEASE

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-netflix

1.4.6.RELEASE

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-security

1.2.3.RELEASE

2.0.1.RELEASE

2.0.1.BUILD-SNAPSHOT

spring-cloud-cloudfoundry

1.1.2.RELEASE

2.0.1.RELEASE

2.0.1.BUILD-SNAPSHOT

spring-cloud-consul

1.3.5.RELEASE

2.0.1.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-sleuth

1.3.5.RELEASE

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-stream

Ditmars.SR4

Elmhurst.SR1

Elmhurst.BUILD-SNAPSHOT

spring-cloud-zookeeper

1.2.2.RELEASE

2.0.0.RELEASE

2.0.1.BUILD-SNAPSHOT

spring-boot

1.5.16.RELEASE

2.0.6.RELEASE

2.0.7.BUILD-SNAPSHOT

spring-cloud-task

1.2.3.RELEASE

2.0.0.RELEASE

2.0.1.BUILD-SNAPSHOT

spring-cloud-vault

1.1.2.RELEASE

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-gateway

1.0.2.RELEASE

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-openfeign

 

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-function

1.0.1.RELEASE

1.0.0.RELEASE

1.0.1.BUILD-SNAPSHOT

Finchley builds and works with Spring Boot 2.0.x, and is not expected to work with Spring Boot 1.5.x.

Note: The Dalston release train will reach end-of-life in December 2018. Edgware will follow the end-of-life cycle of Spring Boot 1.5.x.

The Dalston and Edgware release trains build on Spring Boot 1.5.x, and are not expected to work with Spring Boot 2.0.x.

Note

The Camden release train was marked end-of-life.

The Camden release train builds on Spring Boot 1.4.x, but is also tested with 1.5.x.

Note

The Brixton and Angel release trains were marked end-of-life (EOL) in July 2017.

The Brixton release train builds on Spring Boot 1.3.x, but is also tested with 1.4.x.

The Angel release train builds on Spring Boot 1.2.x, and is incompatible in some areas with Spring Boot 1.3.x. Brixton builds on Spring Boot 1.3.x and is similarly incompatible with 1.2.x. Some libraries and most apps built on Angel will run fine on Brixton, but changes will be required anywhere that the OAuth2 features from spring-cloud-security 1.0.x are used (they were mostly moved to Spring Boot in 1.3.0).

Use your dependency management tools to control the version. If you are using Maven remember that the first version declared wins, so declare the BOMs in order, with the first one usually being the most recent (e.g. if you want to use Spring Boot 1.3.6 with Brixton.RELEASE, put the Boot BOM first). The same rule applies to Gradle if you use the Spring dependency management plugin.

Note

The release train contains a spring-cloud-dependencies as well as thespring-cloud-starter-parent. You can use the parent as you would the spring-boot-starter-parent (if you are using Maven). If you only need dependency management, the "dependencies" version is a BOM-only version of the same thing (it just contains dependency management and no plugin declarations or direct references to Spring or Spring Boot). If you are using the Spring Boot parent POM, then you can use the BOM from Spring Cloud. The opposite is not true: using the Cloud parent makes it impossible, or at least unreliable, to also use the Boot BOM to change the version of Spring Boot and its dependencies.