响应其他插件
当应用其他插件时,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
任务生成的 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
的分发包,并配置其lib
目录包含bootArchives
配置中的 artifact,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 binary 的类路径。 -
将
aotTest
源码集的输出添加到test
GraalVM native binary 的类路径。 -
配置 GraalVM 扩展以禁用 Toolchain 检测。
-
配置每个 GraalVM native binary 要求 GraalVM 22.3 或更高版本。
-
配置
bootJar
任务将collectReachabilityMetadata
任务生成的可达性元数据包含进 jar。 -
配置
bootJar
任务在 manifest 中添加Spring-Boot-Native-Processed: true
条目。
响应 CycloneDX 插件
当 CycloneDX 插件 应用于项目时,Spring Boot 插件会:
-
配置
cyclonedxBom
任务使用application
项目类型,并将 SBOM 输出到 JSON 格式的application.cdx
文件(不包含完整许可证文本)。 -
在生成的 jar 或 war 文件的
META-INF/sbom
下添加 SBOM。 -
在 jar 或 war 文件的 manifest 中添加
Sbom-Format
和Sbom-Location
。