Skip to content

使用 BOM 对齐版本

源:使用 Maven BOM

BOM (Bill of Materials) 是一个特殊的 POM 文件,它定义了一组相互兼容的库版本。使用 BOM,你只需要指定 BOM 的版本,而不需要指定各个子库的版本。

1. 为什么专家推荐使用 BOM?

在大型项目中,如果你手动指定 compose-ui 为 1.5.0,而 compose-material 为 1.4.0,可能会导致严重的运行时 Bug。BOM 确保了它们版本的一致性。

2. 在 Gradle 中引入 BOM

使用 platform 关键字。

kotlin
dependencies {
    // 1. 引入 Compose BOM
    implementation(platform("androidx.compose:compose-bom:2024.02.00"))

    // 2. 引入具体的子库(无需指定版本号)
    implementation("androidx.compose.ui:ui")
    implementation("androidx.compose.material3:material3")
}

3. 自定义 BOM (Platform)

如果你想在公司内部推行一套“标准库版本”,可以创建一个 java-platform 项目发布为 BOM。

kotlin
// 公司内部标准库定义
plugins {
    `java-platform`
}

dependencies {
    constraints {
        api("com.mycompany:core-utils:2.1.0")
        api("com.mycompany:network-lib:1.5.2")
    }
}

4. 强制对齐 (Alignment)

有时即便用了 BOM,某些第三方库可能依然偷偷依赖了旧版本。你可以强制对齐:

kotlin
dependencies {
    modules {
        module("org.jetbrains.kotlin:kotlin-stdlib") {
            replacedBy("org.jetbrains.kotlin:kotlin-stdlib-jdk8", "统一使用 JDK8 版本")
        }
    }
}