了解Spring Cloud版本

sin*_*ity 18 spring-cloud spring-cloud-config

春天的人们在发布大量优质项目方面做得很好.我们一直在使用的是Spring Cloud及其各个子项目.

一个令我困惑的方面是Spring Cloud版本名称.例如,如果您转到Spring Cloud,它会读取CamdenAngelBrixton.然后,如果你转到特定的项目站点,例如,Spring Cloud Config它会显示像1.3.0或的版本1.2.3

关于这些的两个问题.

  1. 从命名版本(camden,brixton,angel)来看,很难看出哪个是最新版本及其序列.有没有一个记录良好的地方?

  2. 如何将命名版本与子项目编号发布相关联?

感谢您的时间.

sin*_*ity 17

发布问题后,在主页面中找到了有关这些版本的一些信息.这肯定会让事情变得清晰起来.

Spring Cloud是一个由独立项目组成的总体项目,原则上具有不同的发布节奏.为了管理投资组合,发布了BOM(物料清单),其中包含一组针对单个项目的依赖关系(见下文).发布列车有名称而不是版本,以避免与子项目混淆.名称是字母序列(因此您可以按时间顺序对它们进行排序)使用伦敦地铁站的名称("天使"是第一个版本,"布里克斯顿"是第二个版本).当各个项目的点数累积到临界质量时,或者其中一个项目中存在一个需要每个人都可用的关键错误时,发布列车将推出名称以".SRX"结尾的"服务版本",其中"X"是一个数字.


Has*_* K. 6

  • 什么是春云?

Spring Cloud 是一个伞形项目,由独立的项目组成,原则上不同的发布节奏。为了管理投资组合,发布了一个 BOM(物料清单),其中包含对单个项目的一组精选的依赖项(见下文)。发布系列有名称,而不是版本,以避免与子项目混淆。名称按字母顺序排列(因此您可以按时间顺序对它们进行排序)和伦敦地铁站的名称(“Angel”是第一个版本,“Brixton”是第二个版本)。当单个项目的点发布积累到临界质量时,或者如果其中一个项目中存在需要对所有人可用的严重错误,发布系列将推出名称以“.SRX”结尾的“服务版本”,其中“X”是一个数字。

  • 通常我们已经有一个基于 Spring Boot 的项目,我们喜欢向它添加一个或多个来自 Spring Cloud 项目的依赖项,然后我们面临的问题是我应该使用哪个特定的 Spring Cloud 项目兼容使用我当前版本的 Spring Boot?

    与 spring boot 版本的发布列车兼容性发布在 spring cloud 的主页上,在撰写本文时,它们位于此处:

    在此处输入图片说明

    此外,每个版本系列的发行说明可能包含各个子项目的不同兼容版本。此外您还可以在此处找到给定版本系列的 GH 页面以及有关其使用的子项目的更多信息。

    现在为了更准确地确定您感兴趣的特定子项目的确切版本,例如spring-cloud-starter-openfeign,需要知道这个伞形项目无非是:

    • 一个主要的 pom 文件spring-cloud-dependencies-parent

    • 一个特定的子 pom spring-boot-starter-parent,它可以告诉你一个给定的发布系列使用什么版本的 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>
    
    Run Code Online (Sandbox Code Playgroud)

    这告诉我作为一个例子,我可以使用2.2.2.RELEASEopen feign的版本,因为我的项目的 spring boot 版本是2.2.5

    如果需要,这些 pom 文件都可以在 maven central 上进行挖掘: