spring-cloud 和 spring-cloud-gcp 是不是有通用 BOM 文件?

Posted

技术标签:

【中文标题】spring-cloud 和 spring-cloud-gcp 是不是有通用 BOM 文件?【英文标题】:is there common BOM file for spring-cloud and spring-cloud-gcp?spring-cloud 和 spring-cloud-gcp 是否有通用 BOM 文件? 【发布时间】:2020-06-25 10:44:17 【问题描述】:

目前在我的项目中,我在 build.gradle 中导入了 2 个 bom 依赖项(用于 spring cloud 和 spring cloud-gcp):

dependencyManagement 
    imports 
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:Greenwich.SR3"
        mavenBom "org.springframework.cloud:spring-cloud-gcp-dependencies:1.2.1.RELEASE"
    

我怀疑这是否正确,因为spring-cloud 的版本可能与spring-cloud-gcp 不兼容。但是我找不到一个通用的 BOM 文件。

你能澄清一下这个问题吗?

【问题讨论】:

您不需要这样做。 Spring Cloud 依赖导入兼容的 gcp bom 如果我删除 mavenBom "org.springframework.cloud:spring-cloud-gcp-dependencies:1.2.1.RELEASE" gradle 找不到实现 'org.springframework.cloud:spring-cloud- gcp-starter-bus-pubsub' 升级到 Hoxton.SR3。 gcp 1 Gcp 1.2.x 与格林威治不兼容 【参考方案1】:

这是正确的。导入 Spring Cloud GCP BOM 允许您省略指定其他 Spring Cloud GCP 依赖项的版本。

通常,您需要将 Spring Cloud GCP 与 Spring Cloud 对齐。也就是说,Spring Cloud GCP 的一个版本是在 Spring Cloud 的特定发布列车上测试/构建的。

因此,对于您的示例,我看到了 v1.2.1.RELEASE 的父级:

https://github.com/spring-cloud/spring-cloud-gcp/blob/v1.2.1.RELEASE/spring-cloud-gcp-dependencies/pom.xml#L8

<parent>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies-parent</artifactId>
    <version>2.2.1.RELEASE</version>
    <relativePath/>
</parent>

所以 Spring Cloud GCP v1.2.1.RELEASE 构建在 Spring Cloud v2.2.1.RELEASE 之上。

现在,如果我查看 Spring Cloud 发布系列的发布说明,I see that Hoxton.SR1 is the release train that Spring Cloud v2.2.1.RELEASE was part of。

您的样本中有 Greenwich.SR3。如果我们算上 Hoxton.SR1,那么 Spring Cloud 至少落后 (3) 个版本。

因此,如果您现在没有遇到不兼容问题,那么您将来会遇到,因为很可能在内部,其中一个库正在使用已弃用的方法或其他内部发生变化的方法。


我还应该注意,如果您使用https://start.spring.io/ 并生成带有一些 Spring Cloud GCP 依赖项的 Gradle 项目,则省略​​了 Spring Cloud GCP BOM。所以更高版本的 Spring Cloud 可能会管理 GCP 依赖项。您可以尝试升级到最新的 Spring Cloud 发布系列,然后删除 Spring Cloud GCP BOM 看看会发生什么。

【讨论】:

gradle:找不到 org.springframework.cloud:spring-cloud-dependencies:2.2.1.RELEASE。 有spring cloud版本和spring cloud gcp版本。什么是霍克斯顿/格林威治版本?

以上是关于spring-cloud 和 spring-cloud-gcp 是不是有通用 BOM 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring-Cloud 中将 ConsulDiscoveryClient 与 Zuul 和 Sidecar 一起使用

引点科技私房菜专栏之Spring-Cloud服务治理

引点科技私房菜专栏之Spring-Cloud服务治理

spring-cloud 和 spring-cloud-gcp 是不是有通用 BOM 文件?

spring-cloud 和ribbon 可以进行基于DNS的负载均衡吗?

spring-cloud中eureka进行服务治理