arj*_*dev 8 java gradle spring-boot
将 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'
}
Run Code Online (Sandbox Code Playgroud)
Nik*_*hil 12
解释一下Spring Boot Gradle 插件参考指南:
\n\n\n\n\nSpring Boot Gradle 插件在 Gradle 中提供 Spring Boot 支持。它允许您打包可执行的 jar 或 war 档案,运行 Spring Boot 应用程序,并使用 spring-boot-dependencies 提供的依赖项管理。
\n
需要注意的关键点是,除了提供 Spring Boot 支持之外,它还允许通过 spring-boot-dependency 使用依赖管理。但...
\n\nspring-boot-dependency BOM 支持依赖管理。
\n\n意思是:
\n\n要获取项目中的依赖项 bom,您必须将依赖项管理插件与 Spring boot gradle 插件配合应用。再次转述一下
\n\n\n\n\n当您应用 io.spring.dependency-management 插件时,Spring\n Boot\xe2\x80\x99s 插件将自动从您正在使用的 Spring Boot 版本导入 spring-boot-dependency\n bom。
\n
如果您需要 Spring Boot 支持,那么您需要该插件。
\n\n此外,如果您需要托管依赖项(如上所述),则需要依赖项管理插件。
\n\n依赖管理插件是导入 Spring Boot 物料清单 (BOM) 的一种方法。
\n\n另一种方法(Gradle 5 及更高版本支持)是从 BOM 导入推荐的依赖项版本作为 Gradle 中的依赖项约束。“平台”(依赖处理程序方法)用于导入 BOM。
\n\ndependencies {\n // Load BOM for Spring Boot.\n implementation(platform("org.springframework.boot:spring-boot-dependencies:2.3.0.RELEASE"))\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n使用任何一种依赖管理方式,您都可以指定依赖项而无需显式版本,如下所示:
\n\ndependencies {\n implementation \'org.springframework.boot:spring-boot-starter-data-mongodb\'\n}\n
Run Code Online (Sandbox Code Playgroud)\n
小智 9
由于 Gradle 5+支持 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'
}
}
Run Code Online (Sandbox Code Playgroud)
迁移指南对此给出了一些提示:
\n\n\n\n\n\nSpring Boot\xe2\x80\x99s Gradle 插件不再自动应用依赖管理插件。相反,Spring Boot\xe2\x80\x99s 插件现在通过导入正确版本的 spring-boot-dependency BOM 来对所应用的依赖项管理插件做出反应。这使您可以更好地控制依赖管理的配置方式和时间。
\n\n对于大多数应用程序,应用依赖管理插件就足够了:
\n\nRun Code Online (Sandbox Code Playgroud)\n\napply plugin: \'org.springframework.boot\'\napply plugin: \'io.spring.dependency-management\' // <-- add this to your build.gradle\n
注意: \n 依赖管理插件仍然是 spring-boot-gradle-plugin 的传递依赖项,因此 \xe2\x80\x99s 不需要将其在构建脚本配置中列为类路径依赖项。
\n
归档时间: |
|
查看次数: |
5487 次 |
最近记录: |