Spring人员在发布大量优质项目方面做得很好。我们一直在使用的是Spring Cloud及其各个子项目。
令我感到困惑的一个方面是Spring Cloud版本名称。例如,如果您转到Spring Cloud,则会显示Camden
或Angel
或Brixton
。然后,如果您转到特定项目网站,例如Spring Cloud Config,它会显示1.3.0
或1.2.3
关于这些的两个问题。
从命名版本(camden,brixton,angel)中,很难看出哪个是最新版本及其序列。是否有一个记录良好的地方?
命名版本如何与子项目编号相关?
感谢您的时间。
答案 0 :(得分:13)
发布问题后,在主页面中找到了有关这些版本的一些信息。这肯定会让事情变得清晰。
Spring Cloud是一个由独立项目组成的总体项目,原则上具有不同的发布节奏。为了管理投资组合,发布了BOM(物料清单),其中包含一组针对单个项目的依赖关系(见下文)。发布列车有名称而不是版本,以避免与子项目混淆。这些名称是一个字母顺序(所以你可以按时间顺序排序)伦敦地铁站的名称(" Angel"是第一个版本," Brixton"是第二个)。当单个项目的点数累积到临界质量时,或者如果其中一个项目中存在一个需要向所有人提供的关键错误,则发布列车将推出“服务发布”和#34;名称以#34; .SRX"结尾,其中" X"是一个数字。
答案 1 :(得分:5)
Spring Cloud是一个总括项目,由原则上具有不同发布节奏的独立项目组成。为了管理项目组合,将发布BOM(物料清单),并带有精选的对单个项目的依赖关系(请参见下文)。发行列车的名称而不是版本,以避免与子项目混淆。名称是按字母顺序排列的(因此您可以按时间顺序对它们进行排序),带有伦敦地铁站的名称(“ Angel”是第一个发行版,“ Brixton”是第二个发行版)。当各个项目的点发布累积到一定数量时,或者其中一个关键错误需要所有人使用时,发布系列将推出名称以“ .SRX”结尾的“服务版本”,其中“ X”是数字。
通常我们已经有一个基于Spring Boot的项目,并且我们想向其中添加一个或多个Spring Cloud项目的依赖项,那么我们面临的问题是我应该使用与当前版本的Spring Boot兼容的特定Spring Cloud项目吗?
该发行版与Spring Boot版本的兼容性已发布在Spring Cloud的home page上,此处是在撰写本文时:
每个发布系列的release notes可能可能包含各个子项目的不同兼容版本。另外,here可以找到给定发行培训的GH页面,以及有关其使用的子项目的更多信息。
现在可以更准确地确定您感兴趣的特定子项目的确切版本,例如spring-cloud-starter-openfeign
,您需要知道这个雨伞项目不过是:
主要pom文件spring-cloud-dependencies-parent
,
特定spring-boot-starter-parent
的子pom,它可以告诉您给定发行版使用的Spring Boot版本。
它还导入spring-cloud-dependencies
,它声明了我们的发布培训正在使用的各个子项目的所有版本,例如对于Hoxton.SR3:
<properties>
<spring-cloud-kubernetes.version>1.1.2.RELEASE</spring-cloud-kubernetes.version>
<spring-cloud-security.version>2.2.1.RELEASE</spring-cloud-security.version>
<spring-cloud-config.version>2.2.2.RELEASE</spring-cloud-config.version>
<spring-cloud-contract.version>2.2.2.RELEASE</spring-cloud-contract.version>
<spring-cloud-netflix.version>2.2.2.RELEASE</spring-cloud-netflix.version>
<spring-cloud-vault.version>2.2.2.RELEASE</spring-cloud-vault.version>
<spring-cloud-openfeign.version>2.2.2.RELEASE</spring-cloud-openfeign.version>
<spring-cloud-task.version>2.2.3.RELEASE</spring-cloud-task.version>
<spring-cloud-stream.version>Horsham.SR3</spring-cloud-stream.version>
<spring-cloud-commons.version>2.2.2.RELEASE</spring-cloud-commons.version>
<spring-cloud-build.version>2.2.3.RELEASE</spring-cloud-build.version>
<spring-cloud-zookeeper.version>2.2.1.RELEASE</spring-cloud-zookeeper.version>
<spring-cloud-consul.version>2.2.2.RELEASE</spring-cloud-consul.version>
<spring-cloud-bus.version>2.2.1.RELEASE</spring-cloud-bus.version>
<spring-cloud-function.version>3.0.3.RELEASE</spring-cloud-function.version>
<spring-cloud-sleuth.version>2.2.2.RELEASE</spring-cloud-sleuth.version>
<spring-cloud-gateway.version>2.2.2.RELEASE</spring-cloud-gateway.version>
<spring-cloud-gcp.version>1.2.2.RELEASE</spring-cloud-gcp.version>
<spring-cloud-cloudfoundry.version>2.2.1.RELEASE</spring-cloud-cloudfoundry.version>
<main.basedir>${basedir}/../..</main.basedir>
<spring-cloud-circuitbreaker.version>1.0.2.RELEASE</spring-cloud-circuitbreaker.version>
<spring-cloud-aws.version>2.2.1.RELEASE</spring-cloud-aws.version>
<spring-cloud-cli.version>2.2.1.RELEASE</spring-cloud-cli.version>
</properties>
这以一个示例为例,因为我项目的春季启动版本是2.2.2.RELEASE
2.2.5
版本的开放假装
如果需要在Maven Central上,可以使用这些pom文件进行深入挖掘:
答案 2 :(得分:0)
Spring Cloud 版本命名已更改。在内部,他们仍然使用伦敦地铁站名称,但发布到 Maven 存储库的内容遵循日历版本控制。解释如下...
<块引用>我们已经更改了我们的版本
训练版本控制方案。我们现在遵循 Calendar Versioning 或 calver
简称。我们将遵循 YYYY.MINOR.MICRO
方案,其中 MINOR
是
每年从零开始递增的数字。 MICRO
段对应于以前使用的后缀:.0
类似于
.RELEASE
和 .2
类似于 .SR2
。预发布后缀也将
例如,将分隔符从使用 .
更改为 -
2020.0.0-M1
和 2020.0.0-RC2
。我们还将停止使用 BUILD-
为快照添加前缀 - 例如 2020.0.0-SNAPSHOT
。
我们将继续使用伦敦地铁站名称作为代号。这
当前代号为 Ilford
。这些名称将不再用于
发布到 Maven 存储库的版本。
与 Spring Boot 版本的兼容性矩阵:https://spring.io/projects/spring-cloud#adding-spring-cloud-to-an-existing-spring-boot-application