将spring-boot插件添加到Gradle项目中会发生什么?为什么我们还需要显式包含spring.dependency-management插件??
plugins {
id "org.springframework.boot" version "2.1.5.RELEASE"
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
}
答案 0 :(得分:4)
由于Gradle提供了5个以上的supports BOM文件,因此您不再需要依赖项管理插件。仍然需要spring boot插件来提供诸如bootJar
和bootRun
之类的任务。这是一个应该起作用的最小build.gradle:
buildscript {
ext {
springBootVersion = '2.2.4.RELEASE'
}
}
repositories {
mavenCentral()
}
plugins {
id 'java'
id 'org.springframework.boot' version "${springBootVersion}"
}
dependencies {
implementation platform("org.springframework.boot:spring-boot-dependencies:${springBootVersion}")
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.springframework.boot:spring-boot-starter-webflux'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
}
答案 1 :(得分:1)
迁移指南对此提供了一些提示:
Spring Boot的Gradle插件不再自动应用依赖项管理插件。相反,Spring Boot的插件现在可以通过导入正确版本的spring-boot-dependencies BOM对所应用的依赖管理插件做出反应。这使您可以更好地控制如何以及何时配置依赖项管理。
对于大多数应用程序,只需应用依赖管理插件即可:
apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' // <-- add this to your build.gradle
注意: 依赖性管理插件仍然是spring-boot-gradle-plugin的可传递依赖性,因此不需要在您的buildscript配置中将其列为类路径依赖性。
答案 2 :(得分:0)
释义Spring Boot Gradle Plugin Reference Guide:
Spring Boot Gradle插件在Gradle中提供了Spring Boot支持。它允许您打包可执行的jar或war归档文件,运行Spring Boot应用程序,并使用spring-boot-dependencies提供的依赖管理。
要注意的关键点是,除了提供Spring Boot支持之外,它还可以通过spring-boot-dependencies使用依赖项管理。但是...
spring-boot-dependencies BOM支持依赖管理。
意思是:
要在项目中获取依赖项Bom,必须将依赖项管理插件与Spring boot gradle插件配合使用。再次解释
应用io.spring.dependency-management插件时,Spring Boot的插件将自动导入spring-boot-dependencies 来自您所使用的Spring Boot版本的bom。
如果需要Spring Boot支持,则需要该插件。
此外,如果要管理依赖项(如上所述),则需要依赖项管理插件。
依赖性管理插件是导入Spring Boot物料清单(BOM)的一种方法。
另一种方法(受Gradle 5及更高版本支持)是从BOM表中导入建议的依赖项版本,作为Gradle中的依赖项约束。 “平台”(依赖项处理程序方法)用于导入BOM。
dependencies {
// Load BOM for Spring Boot.
implementation(platform("org.springframework.boot:spring-boot-dependencies:2.3.0.RELEASE"))
}
使用任何一种依赖项管理方式,您都可以在没有显式版本的情况下指定依赖项,如下所示:
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
}