You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何缓存Google Maven仓库本地副本以支持离线Android开发?

解决方案:离线使用Google Maven仓库(无需逐个添加依赖)

直接下载整个Google Maven仓库并不现实——它包含数十万份依赖包,占用空间极大且大部分内容你根本用不到。以下是两种更实用的方案,既能满足离线开发需求,又能灵活添加新依赖:

方案一:用Gradle任务批量下载核心依赖组

通过自定义Gradle任务,批量扫描并下载Google Maven中你可能用到的核心依赖(比如androidx.*、com.android.*、com.google.*),之后开启Gradle离线模式即可复用缓存:

  1. 在项目根目录的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)
                }
            }
        }
    }
}
  1. 联网状态下运行任务,触发依赖下载:
./gradlew downloadGoogleDependencies

Gradle会把所有符合条件的依赖下载到本地默认缓存目录(~/.gradle/caches/modules-2/files-2.1)。

  1. 开启离线模式:
    • Android Studio:File → Settings → Build, Execution, Deployment → Gradle,勾选「Offline work」
    • 命令行构建:添加--offline参数,比如./gradlew build --offline

后续需要新增依赖时,只需在联网环境下运行一次构建(让Gradle自动下载新依赖到缓存),再切换回离线模式即可。

方案二:搭建本地Maven代理仓库(长期离线场景首选)

用Nexus/Artifactory这类工具搭建本地代理仓库,同步Google Maven的内容,既能按需缓存依赖,又能灵活管理离线资源:

  1. 下载并部署Nexus OSS(免费开源,本地运行)
  2. 在Nexus中创建Proxy仓库,目标地址填写Google Maven的官方地址:https://maven.google.com/
  3. 修改项目根目录的build.gradle,将仓库地址替换为本地Nexus地址:
repositories {
    maven { url 'http://localhost:8081/repository/google-maven-proxy/' }
    // 可添加其他本地仓库(比如本地Maven仓库)
}
  1. 联网时,Nexus会自动缓存项目中用到的所有依赖;离线时,Gradle直接从本地Nexus读取资源。如果需要新增依赖,只需在联网环境下触发一次构建,Nexus会自动同步新依赖到本地。

补充:复用已有Gradle缓存

如果你在另一台联网机器上已经有完整的Gradle缓存,可以直接复制缓存目录到离线机器:

  1. 复制联网机器上的~/.gradle/caches目录到离线机器的指定路径(比如/opt/gradle-cache)
  2. 在离线机器的项目中配置Gradle使用该缓存:
    • 在项目根目录的gradle.properties中添加:
      gradle.user.home=/opt/gradle-cache
      
    • 或者命令行构建时指定:
      ./gradlew build -Dgradle.user.home=/opt/gradle-cache
      

内容的提问来源于stack exchange,提问作者abused_jello

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 05:30:47