如何使用Gradle缓存文件执行构建?
解决Gradle无法找到本地缓存依赖的方法
快速方案:开启离线构建模式
Gradle离线模式会强制使用本地缓存的依赖,不再尝试远程下载。
- 命令行构建时,添加
--offline参数:./gradlew build --offline - 如果用Android Studio等IDE,可在设置里开启:
File → Settings → Build, Execution, Deployment → Gradle,勾选「Offline work」选项。
若离线模式无效,可转为本地库依赖
- 找到缓存中的依赖文件:
进入./gradle/caches/modules-2/files-2.1/com.google.android/flexbox/1.1.1目录,打开其中哈希命名的子文件夹,复制里面的flexbox-1.1.1.aar文件。 - 在项目模块(比如
app)下新建libs文件夹,将复制的aar文件粘贴进去。 - 修改模块的
build.gradle文件,添加本地依赖:dependencies { implementation files('libs/flexbox-1.1.1.aar') }
进阶方案:导入到本地Maven仓库
如果需要保留依赖的传递性(比如aar依赖的其他库),可以把缓存中的依赖安装到本地Maven仓库:
- 执行Gradle安装命令,替换路径为你实际的pom和aar文件路径:
./gradlew install -PmavenPomFile=/你的缓存路径/flexbox-1.1.1.pom -PmavenArtifactId=flexbox -PmavenGroupId=com.google.android -PmavenVersion=1.1.1 -PmavenFile=/你的缓存路径/flexbox-1.1.1.aar - 确保项目根目录的
build.gradle中配置了本地Maven仓库优先级:
之后正常执行构建即可,Gradle会优先从本地Maven仓库读取依赖。repositories { mavenLocal() // 其他远程仓库(如google()、mavenCentral())... }
注意:不要使用
--refresh-dependencies参数,该参数会强制Gradle刷新远程依赖,忽略本地缓存。
内容的提问来源于stack exchange,提问作者Slava
相关产品推荐
相关产品推荐

