59.1.5 自定义依赖管理

默认情况下,CLI使用在解析@Grab依赖时spring-boot-dependencies声明的依赖管理,其他的依赖管理会覆盖默认的依赖管理,并可以通过@DependencyManagementBom注解进行配置。该注解的值必须是一个或多个Maven BOMs的候选(groupId:artifactId:version)。

例如,以下声明:

  1. @DependencyManagementBom("com.example.custom-bom:1.0.0")

将选择Maven仓库中com/example/custom-versions/1.0.0/下的custom-bom-1.0.0.pom

当指定多个BOMs时,它们会以声明次序进行应用,例如:

  1. @DependencyManagementBom(["com.example.custom-bom:1.0.0",
  2. "com.example.another-bom:1.0.0"])

意味着another-bom的依赖将覆盖custom-bom依赖。

能够使用@Grab的地方,你同样可以使用@DependencyManagementBom。然而,为了确保依赖管理的一致次序,你在应用中至多使用一次@DependencyManagementBomSpring IO Platform是一个非常有用的依赖元数据源(Spring Boot的超集),例如:
@DependencyManagementBom('io.spring.platform:platform-bom:1.1.2.RELEASE')