对其他插件的响应
当应用其他插件时,Spring Boot 插件会通过更改项目的配置来做出响应。 本节描述了这些更改。
对 Java 插件的响应
当 Gradle 的 java
plugin 应用于项目时,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
plugin 应用于项目时,Spring Boot 插件:
-
创建一个名为
bootWar
的BootWar
任务,该任务将为项目创建一个可执行的 fat war。 除了标准打包外,providedRuntime
配置中的所有内容都将打包在WEB-INF/lib-provided
中。 -
配置
assemble
任务依赖于bootWar
任务。 -
配置
war
任务使用plain
作为其归档分类器的约定。 -
配置
bootArchives
配置包含由bootWar
任务产生的构件。
对依赖管理插件的响应
当 io.spring.dependency-management
plugin 应用于项目时,Spring Boot 插件将自动导入 spring-boot-dependencies
bom。
对 Application 插件的响应
当 Gradle 的 application
plugin 应用于项目时,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 plugin 应用于项目时,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 本地二进制文件的类路径中。 -
将
aotTest
源集的输出添加到test
GraalVM 本地二进制文件的类路径中。 -
配置 GraalVM 扩展禁用工具链检测。
-
配置每个 GraalVM 本地二进制文件要求 GraalVM 22.3 或更高版本。
-
配置
bootJar
任务在其 jar 中包含由collectReachabilityMetadata
任务产生的可达性元数据。 -
配置
bootJar
任务添加Spring-Boot-Native-Processed: true
清单条目。
对 CycloneDX 插件的响应
当 CycloneDX plugin 应用于项目时,Spring Boot 插件:
-
配置
cyclonedxBom
任务使用application
项目类型,并以 JSON 格式将 SBOM 输出到application.cdx
文件,不包含完整的许可证文本。 -
在生成的 jar 或 war 文件中的
META-INF/sbom
下添加 SBOM。 -
在 jar 或 war 文件的清单中添加
Sbom-Format
和Sbom-Location
。