對其他外掛程式的反應

當另一個外掛程式套用時,Spring Boot 外掛程式會透過對專案組態進行各種變更來做出反應。本節說明這些變更。

對 Java 外掛程式的反應

當 Gradle 的 java 外掛程式套用至專案時,Spring Boot 外掛程式會

  1. 建立一個名為 bootJarBootJar 任務,該任務將為專案建立可執行的 uber jar 檔。該 jar 檔將包含主要來源集執行時期類別路徑上的所有內容;類別會封裝在 BOOT-INF/classes 中,而 jar 檔會封裝在 BOOT-INF/lib

  2. 設定 assemble 任務以依賴 bootJar 任務。

  3. 設定 jar 任務使用 plain 作為其歸檔分類器的慣例。

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

  5. 建立一個名為 bootRunBootRun 任務,該任務可用於使用 main 來源集執行您的應用程式,以找到其主要方法並提供其執行時期類別路徑。

  6. 建立一個名為 'BootRun` 的 BootRun 任務,名為 bootTestRun,該任務可用於使用 test 來源集執行您的應用程式,以找到其主要方法並提供其執行時期類別路徑。

  7. 建立一個名為 bootArchives 的組態,其中包含 bootJar 任務產生的成品。

  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 作為其歸檔分類器的慣例。

  4. 設定 bootArchives 組態以包含 bootWar 任務產生的成品。

對依賴管理外掛程式的反應

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

對應用程式外掛程式的反應

當 Gradle 的 application 外掛程式套用至專案時,Spring Boot 外掛程式會

  1. 建立一個名為 bootStartScriptsCreateStartScripts 任務,該任務將建立使用 java -jar 啟動 bootArchives 組態中成品的腳本。該任務設定為使用 applicationDefaultJvmArgs 屬性作為其 defaultJvmOpts 屬性的慣例。

  2. 建立一個名為 boot 的新發行版本,並將其設定為在其 lib 目錄中包含 bootArchives 組態中的成品,並在其 bin 目錄中包含啟動腳本。

  3. 設定 bootRun 任務以使用 mainClassName 屬性作為其 main 屬性的慣例。

  4. 設定 bootRunbootTestRun 任務以使用 applicationDefaultJvmArgs 屬性作為其 jvmArgs 屬性的慣例。

  5. 設定 bootJar 任務以使用 mainClassName 屬性作為其 manifest 中 Start-Class 項目的慣例。

  6. 設定 bootWar 任務以使用 mainClassName 屬性作為其 manifest 中 Start-Class 項目的慣例。

對 GraalVM 原生映像檔外掛程式的反應

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 原生二進位檔的類別路徑。

  3. aotTest 來源集的輸出新增至 test GraalVM 原生二進位檔的類別路徑。

  4. 設定 GraalVM 擴充功能以停用 Toolchain 偵測。

  5. 設定每個 GraalVM 原生二進位檔以要求 GraalVM 22.3 或更高版本。

  6. 設定 bootJar 任務以在其 jar 檔中包含 collectReachabilityMetadata 任務產生的可達性元數據。

  7. 設定 bootBuildImage 任務以使用 paketobuildpacks/builder-jammy-tiny:latest 作為其建置器,並在其環境中將 BP_NATIVE_IMAGE 設定為 true

對 CycloneDX 外掛程式的反應

CycloneDX 外掛程式套用至專案時,Spring Boot 外掛程式會

  1. 設定 cyclonedxBom 任務以使用 application 專案類型,並以 JSON 格式將 SBOM 輸出到 application.cdx 檔案,且不包含完整的授權文字。

  2. 將 SBOM 新增至產生之 jar 檔或 war 檔中的 META-INF/sbom 下。

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