对于最新稳定版本,请使用 Spring Boot 4.0.4spring-doc.cadn.net.cn

响应其他插件

当应用另一个插件时,Spring Boot 插件会通过修改项目的各项配置来作出响应。 本节将介绍这些修改。spring-doc.cadn.net.cn

响应 Java 插件

当 Gradle 的 java 插件 应用于项目时,Spring Boot 插件会:spring-doc.cadn.net.cn

  1. 创建一个名为 bootJarBootJar 任务,该任务将为项目生成一个可执行的 uber jar。 该 jar 将包含主源集运行时类路径上的所有内容;类被打包在 BOOT-INF/classes 中,jar 包被打包在 BOOT-INF/lib 中。spring-doc.cadn.net.cn

  2. 配置 assemble 任务,使其依赖于 bootJar 任务。spring-doc.cadn.net.cn

  3. 配置 jar 任务,使其使用 plain 作为其归档分类器的约定。spring-doc.cadn.net.cn

  4. 创建一个名为 bootBuildImageBootBuildImage 任务,该任务将使用 buildpack 构建 OCI 镜像。spring-doc.cadn.net.cn

  5. 创建一个名为 bootRunBootRun 任务,该任务可用于运行您的应用程序,它使用 main 源集来查找其主方法并提供其运行时类路径。spring-doc.cadn.net.cn

  6. 创建一个名为 bootTestRunBootRun 任务,该任务可用于运行您的应用程序,它使用 test 源集来查找其主方法并提供其运行时类路径。spring-doc.cadn.net.cn

  7. 创建一个名为 bootArchives 的配置,其中包含由 bootJar 任务生成的构件。spring-doc.cadn.net.cn

  8. 创建一个名为 developmentOnly 的配置,用于仅在开发阶段需要的依赖项(例如 Spring Boot 的 Devtools),这些依赖项不应被打包到可执行的 JAR 和 WAR 文件中。spring-doc.cadn.net.cn

  9. 创建一个名为 testAndDevelopmentOnly 的配置,用于那些仅在开发阶段以及编写和运行测试时才需要的依赖项,这些依赖项不应被打包到可执行的 JAR 和 WAR 文件中。spring-doc.cadn.net.cn

  10. 创建一个名为 productionRuntimeClasspath 的配置。它等同于 runtimeClasspath 减去所有仅出现在 developmentOnlytestDevelopmentOnly 配置中的依赖项。spring-doc.cadn.net.cn

  11. 将所有未配置编码的 JavaCompile 任务配置为使用 UTF-8spring-doc.cadn.net.cn

  12. 配置所有 JavaCompile 任务,以使用 -parameters 编译器参数。spring-doc.cadn.net.cn

响应 Kotlin 插件

Kotlin 的 Gradle 插件被应用到一个项目时,Spring Boot 插件:spring-doc.cadn.net.cn

  1. 将 Spring Boot 依赖管理中使用的 Kotlin 版本与插件的版本对齐。 这是通过设置 kotlin.version 属性,使其值与 Kotlin 插件的版本相匹配来实现的。spring-doc.cadn.net.cn

  2. 配置所有 KotlinCompile 任务,以使用 -java-parameters 编译器参数。spring-doc.cadn.net.cn

响应 War 插件

当 Gradle 的 war 插件 应用于项目时,Spring Boot 插件会:spring-doc.cadn.net.cn

  1. 创建一个名为 bootWarBootWar 任务,该任务将为项目生成一个可执行的胖 WAR 包。 除了标准打包外,providedRuntime 配置中的所有内容都将被打包到 WEB-INF/lib-provided 中。spring-doc.cadn.net.cn

  2. 配置 assemble 任务,使其依赖于 bootWar 任务。spring-doc.cadn.net.cn

  3. 配置 war 任务,使其使用 plain 作为其归档分类器的约定。spring-doc.cadn.net.cn

  4. 配置 bootArchives 配置,使其包含由 bootWar 任务生成的构件。spring-doc.cadn.net.cn

响应依赖管理插件

io.spring.dependency-management 插件 应用于项目时,Spring Boot 插件将自动导入 spring-boot-dependencies BOM。spring-doc.cadn.net.cn

响应应用程序插件

当 Gradle 的 application 插件 应用于项目时,Spring Boot 插件会:spring-doc.cadn.net.cn

  1. 创建一个名为 CreateStartScriptsbootStartScripts 任务,该任务将生成启动脚本,使用 bootArchives 命令来运行 java -jar 配置中的制品。 该任务被配置为使用 applicationDefaultJvmArgs 属性作为其 defaultJvmOpts 属性的约定值。spring-doc.cadn.net.cn

  2. 创建一个名为 boot 的新分发包,并将其配置为:将 bootArchives 配置中的构件放入其 lib 目录中,并将启动脚本放入其 bin 目录中。spring-doc.cadn.net.cn

  3. 配置 bootRun 任务,使其使用 mainClassName 属性作为其 main 属性的约定。spring-doc.cadn.net.cn

  4. 配置 bootRunbootTestRun 任务,使其使用 applicationDefaultJvmArgs 属性作为其 jvmArgs 属性的约定。spring-doc.cadn.net.cn

  5. 配置 bootJar 任务,使其使用 mainClassName 属性作为其清单(manifest)中 Start-Class 条目的约定。spring-doc.cadn.net.cn

  6. 配置 bootWar 任务,使其使用 mainClassName 属性作为其清单(manifest)中 Start-Class 条目的约定。spring-doc.cadn.net.cn

响应 GraalVM 原生镜像插件

GraalVM Native Image 插件被应用到项目时,Spring Boot 插件会:spring-doc.cadn.net.cn

  1. 应用 org.springframework.boot.aot 插件,该插件:spring-doc.cadn.net.cn

    1. 注册 aotaotTest 源代码集。spring-doc.cadn.net.cn

    2. 注册一个名为 ProcessAotprocessAot 任务,该任务将在 aot 源集(source set)中为应用程序生成 AOT 优化的源代码。spring-doc.cadn.net.cn

    3. 配置 aot 源集的 Java 编译和处理资源任务,使其依赖于 processAotspring-doc.cadn.net.cn

    4. 注册一个名为 ProcessTestAotprocessTestAot 任务,该任务将为 aotTest 源代码集中的应用程序测试生成 AOT 优化的源代码。spring-doc.cadn.net.cn

    5. 配置 aotTest 源集的 Java 编译和处理资源任务,使其依赖于 processTestAotspring-doc.cadn.net.cn

  2. aot 源集的输出添加到 main GraalVM 原生二进制文件的类路径中。spring-doc.cadn.net.cn

  3. aotTest 源集的输出添加到 test GraalVM 原生二进制文件的类路径中。spring-doc.cadn.net.cn

  4. 配置 GraalVM 扩展以禁用工具链检测。spring-doc.cadn.net.cn

  5. 配置每个 GraalVM 原生二进制文件,要求使用 GraalVM 22.3 或更高版本。spring-doc.cadn.net.cn

  6. 配置 bootJar 任务,使其在生成的 JAR 文件中包含由 collectReachabilityMetadata 任务生成的可达性元数据。spring-doc.cadn.net.cn

  7. 配置 bootJar 任务,以添加 Spring-Boot-Native-Processed: true 清单条目。spring-doc.cadn.net.cn

响应 CycloneDX 插件

CycloneDX 插件被应用到项目时,Spring Boot 插件将:spring-doc.cadn.net.cn

  1. 配置 cyclonedxBom 任务,使用 application 项目类型,并以 JSON 格式将 SBOM 输出到 application.cdx 文件中,且不包含完整的许可证文本。spring-doc.cadn.net.cn

  2. 在生成的 jar 或 war 文件中的 META-INF/sbom 路径下添加 SBOM。spring-doc.cadn.net.cn

  3. Sbom-FormatSbom-Location 添加到 jar 或 war 文件的清单(manifest)中。spring-doc.cadn.net.cn