依赖配置 (Configurations)
源:管理依赖项配置
Gradle 提供了不同的配置选项,用于控制依赖库在构建过程中的范围。
1. 核心配置对比
| 配置 | 描述 | 最佳实践 |
|---|---|---|
implementation | 仅当前模块可见。 | 首选。能显著加快多模块项目的编译速度。 |
api | 依赖会向上传递。 | 用于库(Library)模块,且该依赖是库 API 的一部分。 |
compileOnly | 只参与编译,不打入包。 | 仅在编译时需要的注解或可选 SDK。 |
runtimeOnly | 仅在运行时可见。 | 数据库驱动实现等不需要直接引用的库。 |
2. 传递依赖
当你依赖 A 库,而 A 库又依赖了 B 库,B 就是传递依赖。
查看依赖树
bash
./gradlew :app:dependencies排除特定传递依赖
kotlin
implementation(libs.cool.library) {
exclude(group = "com.unwanted.module", module = "bad-stuff")
}3. 约束依赖版本
如果你想强制项目中所有模块都使用某个版本的库:
kotlin
dependencies {
constraints {
implementation("org.apache.httpcomponents:httpclient:4.5.12") {
because("因为旧版本有安全漏洞")
}
}
}