对其他插件做出反应

当应用其他插件时,Spring Boot 插件会对项目的配置进行各种更改。本节介绍这些更改。

响应 Java 插件

当 Gradle 的 java 插件 应用于项目时,Spring Boot 插件会

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

  2. 配置 assemble 任务以依赖于 bootJar 任务。

  3. 配置 jar 任务使用 plain 作为其存档分类器的约定。

  4. 创建一个名为 bootBuildImageBootBuildImage 任务,该任务将使用 buildpack 创建一个 OCI 镜像。

  5. 创建一个名为 bootRunBootRun 任务,该任务可用于使用 main 源集运行应用程序以查找其主方法并提供其运行时类路径。

  6. 创建一个名为 bootTestRun'BootRun` 任务,该任务可用于使用 test 源集运行应用程序以查找其主方法并提供其运行时类路径。

  7. 创建一个名为 bootArchives 的配置,其中包含 bootJar 任务生成的工件。

  8. 创建一个名为 developmentOnly 的配置,用于仅在开发时所需的依赖项,例如 Spring Boot 的 Devtools,并且不应打包在可执行的 jar 和 war 中。

  9. 创建一个名为 testAndDevelopmentOnly 的配置,用于仅在开发时以及编写和运行测试时所需的依赖项,并且不应打包在可执行的 jar 和 war 中。

  10. 创建一个名为productionRuntimeClasspath的配置。它等同于runtimeClasspath,减去仅出现在developmentOnlytestDevelopmentOnly配置中的任何依赖项。

  11. 配置任何未配置编码的JavaCompile任务使用UTF-8

  12. 配置任何JavaCompile任务使用-parameters编译器参数。

响应 Kotlin 插件

Kotlin 的 Gradle 插件应用于项目时,Spring Boot 插件

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

  2. 配置任何KotlinCompile任务使用-java-parameters编译器参数。

响应 War 插件

当 Gradle 的war插件应用于项目时,Spring Boot 插件

  1. 创建一个名为bootWarBootWar任务,该任务将为项目创建一个可执行的胖 war 包。除了标准打包之外,providedRuntime配置中的所有内容都将打包在WEB-INF/lib-provided中。

  2. 配置assemble任务依赖于bootWar任务。

  3. 配置war任务使用plain作为其存档分类器的约定。

  4. 配置bootArchives配置包含bootWar任务生成的工件。

响应依赖管理插件

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

响应应用程序插件

当 Gradle 的application插件应用于项目时,Spring Boot 插件

  1. 创建一个名为bootStartScriptsCreateStartScripts任务,该任务将创建使用java -jar启动bootArchives配置中工件的脚本。该任务被配置为使用applicationDefaultJvmArgs属性作为其defaultJvmOpts属性的约定。

  2. 创建一个名为boot的新发行版,并将其配置为在其lib目录中包含bootArchives配置中的工件,在其bin目录中包含启动脚本。

  3. 配置bootRun任务使用mainClassName属性作为其main属性的约定。

  4. 配置bootRunbootTestRun任务使用applicationDefaultJvmArgs属性作为其jvmArgs属性的约定。

  5. 配置bootJar任务使用mainClassName属性作为其清单中Start-Class条目的约定。

  6. 配置 bootWar 任务使用 mainClassName 属性作为其清单中 Start-Class 条目的约定。

响应 GraalVM Native Image 插件

GraalVM Native Image 插件 应用于项目时,Spring Boot 插件

  1. 应用 org.springframework.boot.aot 插件,该插件

    1. 注册 aotaotTest 源集。

    2. 注册一个名为 processAotProcessAot 任务,该任务将在 aot 源集中为应用程序生成 AOT 优化的源代码。

    3. 配置 aot 源集的 Java 编译和处理资源任务以依赖于 processAot

    4. 注册一个名为 processTestAotProcessTestAot 任务,该任务将在 aotTest 源集中为应用程序的测试生成 AOT 优化的源代码。

    5. 配置 aotTest 源集的 Java 编译和处理资源任务以依赖于 processTestAot

  2. aot 源集的输出添加到 main GraalVM 本机二进制文件的类路径中。

  3. aotTest 源集的输出添加到 test GraalVM 本机二进制文件的类路径中。

  4. 配置 GraalVM 扩展以禁用工具链检测。

  5. 配置每个 GraalVM 本机二进制文件以要求 GraalVM 22.3 或更高版本。

  6. 配置 bootJar 任务以在其 jar 中包含由 collectReachabilityMetadata 任务生成的 reachability 元数据。

  7. 配置 bootBuildImage 任务以使用 paketobuildpacks/builder-jammy-tiny:latest 作为其构建器,并在其环境中将 BP_NATIVE_IMAGE 设置为 true