前言
BOM
为Bill of Material的缩写
原本是制造业中的一个概念,比如组装一个手机,BoM包括屏幕、手机壳、芯片、主板、电池等,按照既定的物料清单采购好配件,工厂进行组装生产
对于我们开发者来说, 有什么作用的?
像compose的一系列依赖,版本众多,更新且又频繁,且又相互有所依赖,对于我们开发来说,理清这些层层次次关系足以头大,然后还有个致命问题,我们几个库使用不同版本,可能还会导致编译直接报错,出现依赖版本等冲突问题。
使用BOM管理版本后,后续的compose相关的库,都不需要写版本号了,由BOM默认指定版本
BOM版本和Compose版本的对应关系
https://developer.android.google.cn/develop/ui/compose/bom/bom-mapping?hl=zh-cn
在使用FlowRow的时候,发现组件还处于实验阶段,更新到下面的版本就已经可以解除实验标记了。
1 | implementation("androidx.compose.foundation:foundation-layout:1.8.2") |
但是项目中并没有指定版本的地方,原来是BOM来管理了。
项目配置
build.gradle.kts
1 | implementation(platform(libs.androidx.compose.bom)) |
libs.versions.toml 中指定版本
1 | [versions] |
可以看到
compose相关的依赖就不用指定版本了。
我这里要用foundation-layout:1.8.2
,所以切换版本就行了
1 | composeBom = "2025.05.01" |
注意
不要自己指定某个依赖的版本,会出现不兼容的情况。