您只要指定 BOM 版本,即可利用 Compose 物料清單 (BOM) 管理所有 Compose 程式庫版本。BOM 本身具有不同 Compose 程式庫的穩定版本連結,以便順暢搭配運作。在應用程式中使用 BOM 時,不需要將任何版本加到 Compose 程式庫依附元件。更新 BOM 版本後,您使用的所有程式庫都會自動更新至新版本。
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2024.10.01") implementation(composeBom) testImplementation(composeBom) androidTestImplementation(composeBom) // Specify Compose library dependencies without a version definition implementation("androidx.compose.foundation:foundation") // .. testImplementation("androidx.compose.ui:ui-test-junit4") // .. androidTestImplementation("androidx.compose.ui:ui-test") }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom:2024.10.01') implementation composeBom testImplementation composeBom androidTestImplementation composeBom // Specify Compose library dependencies without a version definition implementation 'androidx.compose.foundation:foundation' // .. testImplementation 'androidx.compose.ui:ui-test-junit4' // .. androidTestImplementation 'androidx.compose.ui:ui-test' }
如要瞭解哪些 Compose 程式庫版本對應至特定的 BOM 版本,請參閱 BOM 與程式庫版本對應清單。
為什麼 BOM 沒有納入 Compose Compiler 程式庫?
Compose Kotlin 編譯器擴充功能 (androidx.compose.compiler) 並未連結至 Compose 程式庫版本,而是連結至 Kotlin 編譯器外掛程式的版本,且發布頻率與 Compose 的其餘部分不同。
自 Kotlin 2.0 起,Compose 應用程式編譯器會與 Kotlin 編譯器一併管理,並使用與 Kotlin 編譯器相同的版本。如需設定詳細資訊,請參閱「Compose Compiler Gradle 外掛程式」。
在 Kotlin 2.0 之前,您必須使用與 Kotlin 版本相容的版本。您可以在 Compose 對應 Kotlin 的相容性清單中找到對應至每個外掛程式版本的 Kotlin 版本,以及如何在 Compose Compiler 中設定。
如何使用與 BOM 中指定版本不同的程式庫版本?
在 build.gradle
依附元件區段中,保留 BOM 平台的匯入內容。在程式庫依附元件匯入內容中,指定覆寫版本。例如,如要使用較新的動畫程式庫 (無論 BOM 中指定的是哪個版本),請按照以下方式宣告依附元件:
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2024.10.01") implementation(composeBom) // Override the BOM version when needed implementation("androidx.compose.animation:animation:1.8.0-alpha05") // .. }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform("androidx.compose:compose-bom:2024.10.01") implementation composeBom // Override the BOM version when needed implementation 'androidx.compose.animation:animation:1.8.0-alpha05' // .. }
BOM 會自動將所有 Compose 程式庫加入應用程式嗎?
不會。如要在應用程式中加入及使用 Compose 程式庫,您必須在模組 (應用程式層級) Gradle 檔案 (通常是 app/build.gradle) 中,以獨立的依附元件行逐一宣告所有程式庫。
使用 BOM 可確保應用程式中所有 Compose 程式庫的版本都相容,但 BOM 實際上並未將這些 Compose 程式庫加入應用程式。
為什麼建議使用 BOM 來管理 Compose 程式庫版本?
往後,Compose 程式庫將獨立建立版本,這表示版本編號會按照自身步調遞增。每個程式庫的最新穩定版本會一起測試。不過,要找出各程式庫的最新穩定版本可能並不容易,而 BOM 可協助您自動使用這些最新版本。
使用 BOM 是否為強制性質?
否,您仍可選擇手動新增每個依附元件版本。不過,我們建議您使用 BOM,因為這樣就能更容易同時使用所有最新穩定版本。
BOM 是否能與版本目錄搭配運作?
可以。您可以在版本目錄中加入 BOM 本身,並省略其他 Compose 程式庫版本:
[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }
別忘了在模組的 build.gradle
中匯入 BOM:
Kotlin
dependencies { val composeBom = platform(libs.androidx.compose.bom) implementation(composeBom) androidTestImplementation(composeBom) // import Compose dependencies as usual }
Groovy
dependencies { Dependency composeBom = platform(libs.androidx.compose.bom) implementation composeBom androidTestImplementation(composeBom) // import Compose dependencies as usual }
如果我想試用 Compose 程式庫的 Alpha 版或 Beta 版,該怎麼做?
目前有三種可用的 Compose BOM。每個 BOM 都是 Compose 程式庫最新可用版本的即時快照。
- 穩定版:包含各程式庫的最新穩定版
- Beta 版:包含每個程式庫的最新 Beta 版、候選版 (RC) 或穩定版
- Alpha - 包含每個程式庫的最新 Alpha、Beta、候選版或穩定版
您可以將 -alpha
和 -beta
新增至 BOM 構件名稱,指定 BOM Alpha 和 Beta 版本。穩定版沒有後置詞。
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom-alpha:2024.10.01") // or platform("androidx.compose:compose-bom-beta:2024.10.01") implementation(composeBom) // .. }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2024.10.01') // or platform('androidx.compose:compose-bom-beta:2024.10.01') implementation composeBom // .. }
如何回報 BOM 相關問題或提供意見回饋?
您可以透過 Issue Tracker 回報問題。
為您推薦
- 注意:系統會在 JavaScript 關閉時顯示連結文字
- Compose 中的 Material Design 3
- Compose 中的 ConstraintLayout
- Compose 中的資源