響應其他外掛

當應用其他外掛時,Spring Boot 外掛會透過對專案配置進行各種更改來做出響應。本節描述了這些更改。

響應 Java 外掛

當 Gradle 的 java 外掛應用於專案時,Spring Boot 外掛會

  1. 建立一個名為 bootJarBootJar 任務,該任務將為專案建立一個可執行的 uber jar。該 jar 將包含主源集的執行時 classpath 中的所有內容;類被打包在 BOOT-INF/classes 中,jar 被打包在 BOOT-INF/lib 中。

  2. assemble 任務配置為依賴於 bootJar 任務。

  3. jar 任務配置為使用 plain 作為其 archive classifier 的約定。

  4. 建立一個名為 bootBuildImageBootBuildImage 任務,該任務將使用 buildpack 建立 OCI 映象。

  5. 建立一個名為 bootRunBootRun 任務,可用於使用 main 源集執行你的應用,以查詢其 main 方法並提供其執行時 classpath。

  6. 建立一個名為 bootTestRunBootRun 任務,可用於使用 test 源集執行你的應用,以查詢其 main 方法並提供其執行時 classpath。

  7. 建立一個名為 bootArchives 的配置,其中包含 bootJar 任務生成的 artifact。

  8. 建立一個名為 developmentOnly 的配置,用於僅在開發時需要的依賴,例如 Spring Boot 的 Devtools,不應將其打包到可執行 jar 和 war 中。

  9. 建立一個名為 testAndDevelopmentOnly 的配置,用於僅在開發時以及編寫和執行測試時需要的依賴,不應將其打包到可執行 jar 和 war 中。

  10. 建立一個名為 productionRuntimeClasspath 的配置。它等效於 runtimeClasspath 減去任何只出現在 developmentOnlytestDevelopmentOnly 配置中的依賴。

  11. 將任何未配置編碼的 JavaCompile 任務配置為使用 UTF-8

  12. 將任何 JavaCompile 任務配置為使用 -parameters 編譯器引數。

響應 Kotlin 外掛

Kotlin 的 Gradle 外掛應用於專案時,Spring Boot 外掛會

  1. 將 Spring Boot 依賴管理中使用的 Kotlin 版本與外掛的版本對齊。這是透過將 kotlin.version 屬性設定為與 Kotlin 外掛版本匹配的值來實現的。

  2. 將任何 KotlinCompile 任務配置為使用 -java-parameters 編譯器引數。

響應 War 外掛

當 Gradle 的 war 外掛應用於專案時,Spring Boot 外掛會

  1. 建立一個名為 bootWarBootWar 任務,該任務將為專案建立一個可執行的 fat war。除了標準打包外,providedRuntime 配置中的所有內容都將打包在 WEB-INF/lib-provided 中。

  2. assemble 任務配置為依賴於 bootWar 任務。

  3. war 任務配置為使用 plain 作為其 archive classifier 的約定。

  4. bootArchives 配置配置為包含 bootWar 任務生成的 artifact。

響應依賴管理外掛

io.spring.dependency-management 外掛應用於專案時,Spring Boot 外掛將自動匯入 spring-boot-dependencies bom。

響應 Application 外掛

當 Gradle 的 application 外掛應用於專案時,Spring Boot 外掛會

  1. 建立一個名為 bootStartScriptsCreateStartScripts 任務,該任務將建立用於使用 java -jar 啟動 bootArchives 配置中 artifact 的指令碼。該任務配置為使用 applicationDefaultJvmArgs 屬性作為其 defaultJvmOpts 屬性的約定。

  2. 建立一個名為 boot 的新 distribution,並配置它包含 bootArchives 配置中的 artifact 在其 lib 目錄中,以及啟動指令碼在其 bin 目錄中。

  3. bootRun 任務配置為使用 mainClassName 屬性作為其 main 屬性的約定。

  4. bootRunbootTestRun 任務配置為使用 applicationDefaultJvmArgs 屬性作為其 jvmArgs 屬性的約定。

  5. bootJar 任務配置為使用 mainClassName 屬性作為其 manifest 中 Start-Class 條目的約定。

  6. bootWar 任務配置為使用 mainClassName 屬性作為其 manifest 中 Start-Class 條目的約定。

響應 GraalVM Native Image 外掛

GraalVM Native Image 外掛應用於專案時,Spring Boot 外掛會

  1. 應用 org.springframework.boot.aot 外掛,該外掛

    1. 註冊 aotaotTest 源集。

    2. 註冊一個名為 processAotProcessAot 任務,該任務將在 aot 源集中為應用生成 AOT 最佳化過的原始碼。

    3. aot 源集的 Java 編譯和處理資源任務配置為依賴於 processAot

    4. 註冊一個名為 processTestAotProcessTestAot 任務,該任務將在 aotTest 源集中為應用的測試生成 AOT 最佳化過的原始碼。

    5. aotTest 源集的 Java 編譯和處理資源任務配置為依賴於 processTestAot

  2. aot 源集的輸出新增到 main GraalVM native 二進位制檔案的 classpath 中。

  3. aotTest 源集的輸出新增到 test GraalVM native 二進位制檔案的 classpath 中。

  4. 配置 GraalVM 擴充套件以停用 Toolchain 檢測。

  5. 配置每個 GraalVM native 二進位制檔案需要 GraalVM 22.3 或更高版本。

  6. bootJar 任務配置為在其 jar 中包含由 collectReachabilityMetadata 任務生成的 reachability metadata。

  7. bootJar 任務配置為新增 Spring-Boot-Native-Processed: true manifest 條目。

響應 CycloneDX 外掛

CycloneDX 外掛應用於專案時,Spring Boot 外掛會

  1. cyclonedxBom 任務配置為使用 application 專案型別,並將 SBOM 輸出到 application.cdx 檔案,格式為 JSON,不包含完整的許可證文字。

  2. 在生成的 jar 或 war 檔案中的 META-INF/sbom 下新增 SBOM。

  3. Sbom-FormatSbom-Location 新增到 jar 或 war 檔案的 manifest 中。