安卓依赖项
版本目录
我们使用version catalog来管理项目中直接使用的所有库。这是用于添加依赖项的唯一允许的方法。为了保持一致性和可追溯性,严格禁止在目录之外添加依赖项。
使用版本目录的好处
- 集中管理:所有依赖项都定义在一处 (
gradle/libs.versions.toml),从而更容易跟踪和更新它们。 - 一致性:确保所有模块使用相同版本的共享依赖项。
- 简化的更新:使更新整个项目的依赖关系变得更加容易。
管理依赖项和锁定文件
该项目利用 Gradle 的 dependency locking 功能,通过跟踪所使用的所有库的精确版本来确保一致且可重复的构建。
为什么要使用依赖锁
- 可重复的构建:通过锁定所有依赖项的确切版本,确保构建在不同环境中保持一致。
- 避免意外:防止对可能破坏构建的传递依赖项进行意外更新。
更新依赖项和锁定文件
在gradle/libs.versions.toml 中添加或更新依赖项时,更新相应的锁定文件也至关重要。锁定文件捕获所有直接和传递依赖项的确切版本。
要更新锁定文件,请从项目根目录运行以下命令:
此命令会解析所有依赖项并更新每个模块中的 gradle.lock 文件。
Info
如果更新了版本目录但未更新锁定文件,则 CI 管道将失败。
使用 Renovate 自动更新依赖项
为了简化依赖关系管理,我们已将 Renovate 集成到存储库中。 Renovate 会自动创建拉取请求来更新依赖项和锁定文件。
翻新如何运作
- 自动更新:Renovate 扫描项目中是否有过时的依赖项,并创建拉取请求来更新它们。
- 锁文件更新:Renovate 确保锁定文件与依赖项一起更新。
- 自定义配置:Renovate 配置为尊重项目的版本控制策略和更新策略。
Note
Renovate 配置为在库的新版本发布后等待 3 天,然后再打开拉取请求。这种延迟使早期采用者能够识别并报告任何明显的问题。
使用翻新的好处
- 节省时间:自动执行检查和更新依赖项的繁琐过程。
- 降低风险:确保一致地应用更新并通过 CI 管道进行测试。
- 提高安全性:使依赖项保持最新,降低漏洞风险。
使用不稳定版本
虽然我们的目标是与我们使用的库保持同步,但我们优先考虑稳定性。因此,我们避免使用alpha、beta、rc或其他不稳定版本。
Note
在非常特殊的情况下,我们同意 PR 使用 alpha 版本来访问新功能。然而,这会带来每次更新后解决问题的成本,因为 API 不稳定。一个值得注意的例子是 wear-compose-material 库。

