Gradle是否存在仅从Maven仓库下载依赖的专用任务?
如何用Gradle仅下载依赖而不执行完整构建
嘿,这个问题我太懂了——跑完整的./gradlew build确实慢得让人抓狂,尤其是你只是想确保依赖都下载好的时候。Gradle其实提供了好几种方式,让你只做依赖下载这一件事,完全跳过编译、打包这些耗时步骤。
针对你的Android项目(毕竟你用了Firebase Ads依赖),这里有几个最实用的方法:
针对特定构建变体下载依赖
如果你只需要Debug环境的依赖,直接执行这个命令:./gradlew :app:debugCompileClasspath要是需要Release环境的,就换成:
./gradlew :app:releaseCompileClasspath这个命令只会解析并下载对应变体编译时需要的所有依赖(包括你配置的
com.google.firebase:firebase-ads:9.8.0),不会碰代码编译或者打包流程,速度快很多。下载所有构建变体的依赖
如果你想一次性搞定所有变体的依赖,可以用这个:./gradlew resolveAllDependencies这个任务会遍历所有构建变体,下载它们各自需要的依赖,适合你想提前把所有依赖都缓存到本地的场景。
强制刷新依赖(如果本地缓存有问题)
要是你怀疑本地依赖缓存出问题了,想强制Gradle重新从仓库下载,可以在命令后面加上--refresh-dependencies参数,比如:./gradlew :app:debugCompileClasspath --refresh-dependencies这个参数会让Gradle忽略本地已有的缓存,重新检查远程仓库的依赖版本并下载你指定的版本。
原理小科普
这些命令之所以能只下载依赖,是因为Gradle的任务是基于依赖关系的——debugCompileClasspath这类任务的唯一职责就是构建编译所需的类路径,而构建类路径的前提就是下载所有相关的依赖。它不依赖编译、打包这类下游任务,所以只会完成下载和解析这两步。
内容的提问来源于stack exchange,提问作者Jon
相关产品推荐
相关产品推荐

