响应其他插件
当应用其他插件时,Spring Boot 插件会通过对项目配置进行各种更改来做出响应。本节描述了这些更改。
响应 Java 插件
当 Gradle 的 java 插件应用于项目时,Spring Boot 插件会
-
创建一个名为
bootJar的BootJar任务,该任务将为项目创建一个可执行的 uber jar。该 jar 将包含主源集的运行时 classpath 中的所有内容;类被打包在BOOT-INF/classes中,jar 被打包在BOOT-INF/lib中。 -
将
assemble任务配置为依赖于bootJar任务。 -
将
jar任务配置为使用plain作为其 archive classifier 的约定。 -
创建一个名为
bootBuildImage的BootBuildImage任务,该任务将使用 buildpack 创建 OCI 镜像。 -
创建一个名为
bootRun的BootRun任务,可用于使用main源集运行你的应用,以查找其 main 方法并提供其运行时 classpath。 -
创建一个名为
bootTestRun的BootRun任务,可用于使用test源集运行你的应用,以查找其 main 方法并提供其运行时 classpath。 -
创建一个名为
bootArchives的配置,其中包含bootJar任务生成的 artifact。 -
创建一个名为
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。
响应 Application 插件
当 Gradle 的 application 插件应用于项目时,Spring Boot 插件会
-
创建一个名为
bootStartScripts的CreateStartScripts任务,该任务将创建用于使用java -jar启动bootArchives配置中 artifact 的脚本。该任务配置为使用applicationDefaultJvmArgs属性作为其defaultJvmOpts属性的约定。 -
创建一个名为
boot的新 distribution,并配置它包含bootArchives配置中的 artifact 在其lib目录中,以及启动脚本在其bin目录中。 -
将
bootRun任务配置为使用mainClassName属性作为其main属性的约定。 -
将
bootRun和bootTestRun任务配置为使用applicationDefaultJvmArgs属性作为其jvmArgs属性的约定。 -
将
bootJar任务配置为使用mainClassName属性作为其 manifest 中Start-Class条目的约定。 -
将
bootWar任务配置为使用mainClassName属性作为其 manifest 中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 native 二进制文件的 classpath 中。 -
将
aotTest源集的输出添加到testGraalVM native 二进制文件的 classpath 中。 -
配置 GraalVM 扩展以禁用 Toolchain 检测。
-
配置每个 GraalVM native 二进制文件需要 GraalVM 22.3 或更高版本。
-
将
bootJar任务配置为在其 jar 中包含由collectReachabilityMetadata任务生成的 reachability metadata。 -
将
bootJar任务配置为添加Spring-Boot-Native-Processed: truemanifest 条目。
响应 CycloneDX 插件
当 CycloneDX 插件应用于项目时,Spring Boot 插件会
-
将
cyclonedxBom任务配置为使用application项目类型,并将 SBOM 输出到application.cdx文件,格式为 JSON,不包含完整的许可证文本。 -
在生成的 jar 或 war 文件中的
META-INF/sbom下添加 SBOM。 -
将
Sbom-Format和Sbom-Location添加到 jar 或 war 文件的 manifest 中。