Maven BOM用于解决Spring + Spring Data + Spring Security的依赖关系?

时间:2015-12-17 10:37:08

标签: spring maven spring-security spring-data maven-bom

Spring Data Jpa Docs建议使用Maven BOM(bill of materials),原因如下:

  

由于各个Spring Data模块的启动日期不同,大多数情况都是如此   它们带有不同的主要和次要版本号。最简单的方法   找到兼容的是依靠Spring Data Release Train BOM   我们附带定义的兼容版本。在你的Maven项目中   在POM的<dependencyManagement/>部分声明此依赖关系

提供了对official example的引用。

我了解BOM和dependencyManagement。供应商正式向我们(开发人员)提供经过测试/推荐/支持的兼容性列表。 太棒了!

更改版本的原因 - 获取所需的新功能或注册错误修复。

我仍然可以移动BOM的版本号:

org.springframework:spring-framework-bom
org.springframework.data:spring-data-releasetrain
org.springframework.security:spring-security-bom

如何选择兼容的?

所有保护伞是否有 SPRING-SUPER-BOM (我的意思是官方或社区支持,所以我通过避免故障排除来节省我的时间,如果发生了这种情况,我发现并解决了问题 - 我有一个选择回到社区的解决方案)?

1 个答案:

答案 0 :(得分:2)

感谢 @ M.Deinum 指向Spring IO platform

该项目提供各种Spring项目及其依赖项的版本。

可以通过查看不同的代码,在相应的http://docs.spring.io/platform/docs/https://github.com/spring-io/platform/blob/master/platform-bom/pom.xml文件中检查实际的依赖关系:https://github.com/spring-io/platform/tags

使用本地Git克隆很容易做到:

$ git clone https://github.com/spring-io/platform.git
$ cd platform/
$ git tag --list
$ git co v1.0.2.RELEASE
$ less platform-bom/pom.xml

但是你没有找到spring-core / spring-mvc / string-data / spring-security的依赖关系,因为它们位于父pom spring-boot-starter-parent中,实际上还包括spring-boot-dependencies

spring-boot-dependencies具有版本和依赖

  • spring-framework-bom
  • spring-data-releasetrain
  • spring-security-bom
  • spring-integration-bom

因此,如果您的申请非常有效 - 您可以使用io.spring.platform:platform-bom。但如果过于复杂的列表只使用org.springframework.boot:spring-boot-dependencies作为dependencyManagement