响应其他插件
当应用其他插件时,Spring Boot 插件会通过对项目的配置进行各种更改来响应。本节描述了这些更改。
响应 Java 插件
当 Gradle 的 java 插件 应用于项目时,Spring Boot 插件会:
-
创建一个名为
bootJar的BootJar任务,它将为项目创建一个可执行的 uber jar。该 jar 将包含主源集的运行时类路径上的所有内容;类被打包在BOOT-INF/classes中,jar 被打包在BOOT-INF/lib中。 -
将
assemble任务配置为依赖于bootJar任务。 -
将
jar任务配置为使用plain作为其 archive classifier 的约定。 -
创建一个名为
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编译器参数。
响应依赖管理插件
当 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 扩展以禁用工具链检测。
-
配置
bootJar任务以在其 jar 中包含collectReachabilityMetadata任务生成的 reachability metadata。 -
配置
bootJar任务以添加Spring-Boot-Native-Processed: true清单条目。
响应 CycloneDX 插件
当 CycloneDX 插件 应用于项目时,Spring Boot 插件会:
-
配置
cyclonedxBom任务以:-
使用
application项目类型。 -
将 JSON 格式的 SBOM 输出到
application.cdx.json文件。 -
禁用 XML 格式的 SBOM。
-
禁用完整的许可证文本。
-
-
将 SBOM 添加到生成的 jar 或 war 文件中的
META-INF/sbom下。 -
将
Sbom-Format和Sbom-Location添加到 jar 或 war 文件的清单中。