0x00 Gradle 刷新模块
Gradle 申明依赖时,对于正在开发测试中的模块,有多种方式动态依赖最新版本。同时为了保证构建效率,gradle 默认 24 小时才会检查动态版本是否发生变化。本文将说明如何申明/刷新动态依赖。
1. 依赖申明
- 申明动态依赖(Dynamic dependencies):
dependencies {
implementation 'com.example:library:1.+'
}
- 申明变更中版本(Changing version):
dependencies {
implementation 'org.example:library:1.0.0-SNAPSHOT'
}
2. 更新依赖
- 调整默认更新时间
对于动态依赖和变更中版本,默认更新时间为 24 小时,可以通过以下配置调整更新时间。
configurations.all {
resolutionStrategy.cacheDynamicVersionsFor 10, 'minutes'
// resolutionStrategy.cacheChangingModulesFor 4, 'hours'
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
- 通过命令行刷新
--refresh-dependencies
参数会让 gradle 忽略所有模块缓存信息,重新计算动态版本,比较 SHA1 值确定是否下载新的模块。此参数严重影响构建速度。
3. 刷新单模块
对于单个模块,发布之后出现新的修改,此时还没有外部使用,于是使用相同版本号。按照之前的说明,需要使用 --refresh-dependencies
,构建速度非常慢,通过以下修改能像 SNAPSHOT
版本刷新。
dependencies {
implementation('org.example:library:1.0.0'){
changing = true
}
}
是的,如你所想,就是将模块申明成了变更中版本
0x02 Gradle 依赖查看
1. 查看所有依赖
./gradlew :module:dependencies --configuration debugCompileClasspath
2. 查看指定库依赖
./gradlew :module:dependencyInsight --dependency <xxxx> --configuration debugCompileClasspath