如何缓存Google Maven仓库本地副本以支持离线Android开发?
解决方案:离线使用Google Maven仓库(无需逐个添加依赖)
直接下载整个Google Maven仓库并不现实——它包含数十万份依赖包,占用空间极大且大部分内容你根本用不到。以下是两种更实用的方案,既能满足离线开发需求,又能灵活添加新依赖:
方案一:用Gradle任务批量下载核心依赖组
通过自定义Gradle任务,批量扫描并下载Google Maven中你可能用到的核心依赖(比如androidx.*、com.android.*、com.google.*),之后开启Gradle离线模式即可复用缓存:
- 在项目根目录的
build.gradle中添加自定义任务:
task downloadGoogleDependencies { doLast { // 扫描所有常用配置的依赖 def targetConfigs = [ configurations.compileClasspath, configurations.runtimeClasspath, configurations.testCompileClasspath, configurations.testRuntimeClasspath ] targetConfigs.each { config -> // 筛选Google仓库核心依赖组 config.resolvedConfiguration.lenientConfiguration.allModuleDependencies.each { dep -> def group = dep.moduleGroup if (group.startsWith("androidx") || group.startsWith("com.android") || group.startsWith("com.google")) { println "缓存依赖:${group}:${dep.moduleName}:${dep.moduleVersion}" // 强制下载该依赖及其传递依赖到本地缓存 config.files(dep) } } } } }
- 联网状态下运行任务,触发依赖下载:
./gradlew downloadGoogleDependencies
Gradle会把所有符合条件的依赖下载到本地默认缓存目录(~/.gradle/caches/modules-2/files-2.1)。
- 开启离线模式:
- Android Studio:
File → Settings → Build, Execution, Deployment → Gradle,勾选「Offline work」 - 命令行构建:添加
--offline参数,比如./gradlew build --offline
- Android Studio:
后续需要新增依赖时,只需在联网环境下运行一次构建(让Gradle自动下载新依赖到缓存),再切换回离线模式即可。
方案二:搭建本地Maven代理仓库(长期离线场景首选)
用Nexus/Artifactory这类工具搭建本地代理仓库,同步Google Maven的内容,既能按需缓存依赖,又能灵活管理离线资源:
- 下载并部署Nexus OSS(免费开源,本地运行)
- 在Nexus中创建Proxy仓库,目标地址填写Google Maven的官方地址:
https://maven.google.com/ - 修改项目根目录的
build.gradle,将仓库地址替换为本地Nexus地址:
repositories { maven { url 'http://localhost:8081/repository/google-maven-proxy/' } // 可添加其他本地仓库(比如本地Maven仓库) }
- 联网时,Nexus会自动缓存项目中用到的所有依赖;离线时,Gradle直接从本地Nexus读取资源。如果需要新增依赖,只需在联网环境下触发一次构建,Nexus会自动同步新依赖到本地。
补充:复用已有Gradle缓存
如果你在另一台联网机器上已经有完整的Gradle缓存,可以直接复制缓存目录到离线机器:
- 复制联网机器上的
~/.gradle/caches目录到离线机器的指定路径(比如/opt/gradle-cache) - 在离线机器的项目中配置Gradle使用该缓存:
- 在项目根目录的
gradle.properties中添加:gradle.user.home=/opt/gradle-cache - 或者命令行构建时指定:
./gradlew build -Dgradle.user.home=/opt/gradle-cache
- 在项目根目录的
内容的提问来源于stack exchange,提问作者abused_jello
相关产品推荐
相关产品推荐

