目前在我的项目中,我在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.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.1.RELEASE是在Spring Cloud v2.2.1.RELEASE的基础上构建的。
现在,如果我查看Spring Cloud发布列车的发布说明,我会看到Hoxton。SR1是Spring Cloud v2.2.1.release的一部分。
你有格林威治。样品中的SR3。如果算上霍克斯顿,你至少落后于Spring Cloud的(3(个版本。SR1.
因此,如果您现在还没有遇到不兼容问题,将来也会遇到,因为很可能其中一个库在内部使用了不推荐使用的方法或其他内部更改的方法。
我还应该注意,如果您使用https://start.spring.io/并生成具有一些Spring Cloud GCP依赖项的Gradle项目,则省略了Spring Cloud GCP-BOM。因此,Spring Cloud的后续版本可能正在管理GCP依赖关系。您可以尝试升级到最新的Spring Cloud发布列车,然后删除Spring Cloud GCP BOM,看看会发生什么。