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

Time:06-04

I'm using Gradle 6.6 to build my Spring Boot app. According to this post, the io.spring.dependency-management plugin is no longer needed since Gradle 5 supports BOM files.

However, I receive the following error if I remove the plugin:

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.

Line 14 of my build.gradle file is referenced in the above error. Here are lines 14-18:

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

Is there another way to specify the required dependencies for Spring Cloud without using io.spring.dependency-management plugin?

CodePudding user response:

dependencyManagement() is provided exclusively by the io.spring.dependency-management plugin. Which means you cannot use it if you don't use the plugin. And in that case you have to use the gradle's platform capability. In the post you linked there's an example of that.

To fix your build, remove the dependencyManagement part and add

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

to your dependencies { }

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

  • Related