使用 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 版本")
}
}
}