这是对的。导入 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,那么 Spring Cloud 至少落后 (3) 个版本,(4) 个。
因此,如果您现在没有遇到不兼容问题,那么您将来会遇到,因为很可能在内部,其中一个库正在使用不推荐使用的方法或其他内部发生变化的方法。
我还应该注意,如果您使用https://start.spring.io/并生成带有一些 Spring Cloud GCP 依赖项的 Gradle 项目,则省略 Spring Cloud GCP BOM。所以更高版本的 Spring Cloud 可能会管理 GCP 依赖项。您可以尝试升级到最新的 Spring Cloud 发布系列,然后删除 Spring Cloud GCP BOM,看看会发生什么。