繁体   English   中英

spring-cloud 和 spring-cloud-gcp 有通用的 BOM 文件吗?

[英]is there common BOM file for spring-cloud and spring-cloud-gcp?

目前在我的项目中,我在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 允许您省略指定其他 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 发行版系列的发行说明, 我会发现 Hoxton.SR1 是 Spring Cloud v2.2.1.RELEASE 属于.

您的示例中有 Greenwich.SR3。 如果算上 Hoxton.SR1,您至少落后 (3) 个 Spring Cloud 版本,(4) 个版本。

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


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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM