使用 Spring Boot 2.3+ 和 Spring Cloud 时是否需要 io.spring.dependency-管理插件?

Is io.spring.dependency-management plugin required when using Spring Boot 2.3+ and Spring Cloud?

我正在使用 Gradle 6.6 构建我的 Spring 启动应用程序。根据此 post,不再需要 io.spring.dependency-管理插件,因为 Gradle 5+ 支持 BOM 文件。

但是,如果删除插件,我会收到以下错误消息:

Could not run phased build action using connection to Gradle distribution 'https://services.gradle.org/distributions/gradle-6.6.1-bin.zip'.
Build file 'C:\my-app\build.gradle' line: 14
A problem occurred evaluating root project 'my-app'.
Could not find method dependencyManagement() for arguments [build_6e8ejdhnd2no2m9jw221sctmn3$_run_closure2@432e46e2] on root project 'my-app' of type org.gradle.api.Project.

我的 build.gradle 文件的第 14 行在上述错误中被引用。这是第 14-18 行:

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:Hoxton.SR8"
    }
}

是否有另一种方法可以在不使用 io.spring.dependency-管理插件的情况下为 Spring 云指定所需的依赖项?

dependencyManagement()io.spring.dependency-management 插件独家提供。这意味着如果您不使用该插件,则无法使用它。 在这种情况下,您必须使用 gradle 的 platform 功能。 在您链接的 post 中有一个例子。

要修复您的构建,删除 dependencyManagement 部分并添加

implementation platform("org.springframework.cloud:spring-cloud-dependencies:Hoxton.SR8")

给你的dependencies { }

参考:https://docs.spring.io/dependency-management-plugin/docs/current/reference/html/#dependency-management-configuration-dsl