响应其他插件
当应用其他插件时,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
源集的输出添加到main
GraalVM native 二进制文件的 classpath 中。 -
将
aotTest
源集的输出添加到test
GraalVM native 二进制文件的 classpath 中。 -
配置 GraalVM 扩展以禁用 Toolchain 检测。
-
配置每个 GraalVM native 二进制文件需要 GraalVM 22.3 或更高版本。
-
将
bootJar
任务配置为在其 jar 中包含由collectReachabilityMetadata
任务生成的 reachability metadata。 -
将
bootJar
任务配置为添加Spring-Boot-Native-Processed: true
manifest 条目。
响应 CycloneDX 插件
当 CycloneDX 插件应用于项目时,Spring Boot 插件会
-
将
cyclonedxBom
任务配置为使用application
项目类型,并将 SBOM 输出到application.cdx
文件,格式为 JSON,不包含完整的许可证文本。 -
在生成的 jar 或 war 文件中的
META-INF/sbom
下添加 SBOM。 -
将
Sbom-Format
和Sbom-Location
添加到 jar 或 war 文件的 manifest 中。