我编写了一个Gradle插件,其中包含许多常用的设置配置,因此我们所有的项目都只需要应用该插件和一组依赖项即可。它使用Spring Dependency Management插件为Spring设置BOM导入,如下面的代码片段所示:
trait ConfigureDependencyManagement {
void configureDependencyManagement(final Project project) {
assert project != null
project.apply(plugin: "io.spring.dependency-management")
final DependencyManagementExtension dependencyManagementExtension = project.extensions.findByType(DependencyManagementExtension)
dependencyManagementExtension.imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.0.RELEASE"
}
}
}
Run Code Online (Sandbox Code Playgroud)
尽管在Gradle 5.1中仍然可以使用,但我想用BOM导入的新依赖机制替换Spring Dependency Management插件,所以我将上面的内容更新为:
trait ConfigureDependencyManagement {
void configureDependencyManagement(final Project project) {
assert project != null
project.dependencies.platform("org.springframework.boot:spring-boot-dependencies:2.1.0.RELEASE")
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,更改意味着没有导入由这些BOM定义的依赖项,并且在构建项目时遇到类似的错误?
找不到org.springframework.boot:spring-boot-starter-web:。要求:项目:
找不到org.springframework.boot:spring-boot-starter-data-jpa:。要求:项目:
找不到org.springframework.boot:spring-boot-starter-security:。要求:项目:
我是否认为Gradle 5.1不再需要Spring Dependency Management插件是正确的,如果是的话,我是否错过了一些使它起作用的东西?