响应其他插件
当应用另一个插件时,Spring Boot 插件会通过修改项目的配置做出相应的反应。本节将描述这些变化。
对 Java 插件的响应
当 Gradle 的 Java 插件 应用于项目时,Spring Boot 插件:
-
创建一个名为
bootJar的 BootJar 任务,该任务将为项目创建一个可执行的 uber jar。该 jar 将包含主源代码集的运行时类路径中的所有内容;类文件打包在BOOT-INF/classes中,而 jar 文件打包在BOOT-INF/lib中。 -
配置
assemble任务,使其依赖于bootJar任务。 -
配置
jar任务,使用plain作为其归档分类器的约定。 -
创建一个名为
bootBuildImage的 BootBuildImage 任务,该任务将使用 buildpack 创建一个 OCI 镜像。 -
创建一个名为
bootRun的 BootRun 任务,该任务可用于运行应用程序,使用main源代码集来查找其主方法并提供其运行时类路径。 -
创建一个名为
bootTestRun的 BootRun 任务,该任务可用于运行应用程序,使用test源代码集来查找其主方法并提供其运行时类路径。 -
创建一个名为
bootArchives的配置,其中包含由bootJar任务生成的工件。 -
创建一个名为
developmentOnly的配置,用于仅在开发时需要的依赖项,例如 Spring Boot 的 Devtools,这些依赖项不应打包在可执行的 jar 和 war 中。 -
创建一个名为
testAndDevelopmentOnly的配置,用于仅在开发时以及编写和运行测试时需要的依赖项,这些依赖项不应打包在可执行的 jar 和 war 中。 -
创建一个名为
productionRuntimeClasspath的配置。它等同于runtimeClasspath,但排除了仅出现在developmentOnly或testDevelopmentOnly配置中的任何依赖项。 -
配置任何未配置编码的
JavaCompile任务以使用UTF-8。 -
配置任何
JavaCompile任务以使用-parameters编译器参数。
对 Kotlin 插件的响应
当 Kotlin 的 Gradle 插件 应用于项目时,Spring Boot 插件:
-
将 Spring Boot 依赖管理中使用的 Kotlin 版本与插件的版本对齐。这是通过设置
kotlin.version属性来实现的,该属性的值与 Kotlin 插件的版本匹配。 -
配置所有
KotlinCompile任务以使用-java-parameters编译器参数。
响应 War 插件
当 Gradle 的 war 插件 应用到项目时,Spring Boot 插件:
-
创建一个名为
bootWar的 BootWar 任务,该任务将为项目创建一个可执行的 fat war。除了标准打包外,providedRuntime配置中的所有内容都将打包到WEB-INF/lib-provided中。 -
配置
assemble任务依赖于bootWar任务。 -
配置
war任务使用plain作为其归档分类器的约定。 -
配置
bootArchives配置以包含由bootWar任务生成的工件。
响应依赖管理插件
当 io.spring.dependency-management 插件 应用于项目时,Spring Boot 插件会自动导入 spring-boot-dependencies bom。
响应应用程序插件
当 Gradle 的 application 插件 被应用到项目时,Spring Boot 插件:
-
创建一个名为
bootStartScripts的CreateStartScripts任务,该任务将生成使用java -jar启动bootArchives配置中的工件的脚本。该任务配置为使用applicationDefaultJvmArgs属性作为其defaultJvmOpts属性的约定。 -
创建一个名为
boot的新分发,并配置其在其lib目录中包含bootArchives配置中的工件,并在其bin目录中包含启动脚本。 -
配置
bootRun任务以使用mainClassName属性作为其main属性的约定。 -
配置
bootRun和bootTestRun任务以使用applicationDefaultJvmArgs属性作为其jvmArgs属性的约定。 -
配置
bootJar任务以使用mainClassName属性作为其清单中Start-Class条目的约定。 -
配置
bootWar任务以使用mainClassName属性作为其清单中Start-Class条目的约定。
对 GraalVM Native Image 插件的响应
当 GraalVM Native Image 插件 应用于一个项目时,Spring Boot 插件:
-
应用
org.springframework.boot.aot插件,该插件:-
注册
aot和aotTest源码集。 -
注册一个名为
processAot的ProcessAot任务,该任务将生成应用程序在aot源码集下的 AOT 优化源码。 -
配置
aot源码集的 Java 编译和资源处理任务,使其依赖于processAot任务。 -
注册一个名为
processTestAot的ProcessTestAot任务,该任务将生成应用程序测试在aotTest源码集下的 AOT 优化源码。 -
配置
aotTest源码集的 Java 编译和资源处理任务,使其依赖于processTestAot任务。
-
-
将
aot源码集的输出添加到mainGraalVM 原生二进制文件的类路径中。 -
将
aotTest源码集的输出添加到testGraalVM 原生二进制文件的类路径中。 -
配置 GraalVM 扩展以禁用工具链检测。
-
配置每个 GraalVM 原生二进制文件,要求 GraalVM 22.3 或更高版本。
-
配置
bootJar任务,使其在其 jar 中包含由collectReachabilityMetadata任务生成的可达性元数据。 -
配置
bootJar任务,添加Spring-Boot-Native-Processed: true清单条目。
响应 CycloneDX 插件
当将 CycloneDX 插件 应用到项目时,Spring Boot 插件:
-
配置
cyclonedxBom任务以使用application项目类型,并将 SBOM 以 JSON 格式输出到application.cdx文件中,不包含完整的许可证文本。 -
将 SBOM 添加到生成的 jar 或 war 文件的
META-INF/sbom目录下。 -
将
Sbom-Format和Sbom-Location添加到 jar 或 war 文件的清单中。