Maven离线依赖库

QuibblerQuibbler 2020-07-11 约 5 分钟 2256 次阅读

Maven离线依赖库

AndroidStudio使用Gradle构建项目,但是最近Gradle频繁出现下载依赖失败,各种404/403网络异常,即便使用国内阿里的镜像仓库也无济于事(参考依赖库下载慢的解决办法)。

这几天不知道什么情况,突然project编译不了,gradle一直显示在download,等了很长时间之后最后还是失败。解决问题三件法宝都用上了:重启、卸载重装、清除缓存。不就是网络不能访问吗,重金购了一个“梯子”过“墙”,还是不行,真的玄学了。

1、下载离线依赖包

最后在Google开发者网站上找到了终极操作:提供下载最新版本的Android Gradle插件和Google Maven依赖项以离线构建项目。竟然把构建项目所需依赖全部一次性打包,下载到本地,免去gradle龟速下载过程。


下载地址:Offline components

2、本地配置

①新建目录并解压下载的zip包(如果之前已配置过,删除重新更新)

Windows上:%USER_HOME%/.android/manual-offline-m2/

macOS 和 Linux 上:~/.android/manual-offline-m2/

②创建Gradle脚本文件

Windows 上:%USER_HOME%/.gradle/init.d/offline.gradle

macOS 和 Linux 上:~/.gradle/init.d/offline.gradle

③复制以下内容保存到offline.gradle脚本文件中

def reposDir = new File(System.properties['user.home'], ".android/manual-offline-m2")
    def repos = new ArrayList()
    reposDir.eachDir {repos.add(it) }
    repos.sort()
    allprojects {
      buildscript {
        repositories {
          for (repo in repos) {
            maven {
              name = "injected_offline_${repo.name}"
              url = repo.toURI().toURL()
            }
          }
        }
      }
      repositories {
        for (repo in repos) {
          maven {
            name = "injected_offline_${repo.name}"
            url = repo.toURI().toURL()
          }
        }
      }
    }

④构建AndroidStudio项目即自动从本地离线依赖库中加载

⑤如果还会从在线依赖库中加载,可以注释屏蔽build.gradle中的google()和jcenter()

buildscript {
        repositories {
            // Hide these repositories to test your build against
            // the offline components. You can include them again after
            // you've confirmed that your project builds ‘offline’.
            // google()
            // jcenter()
        }
        ...
    }
    allprojects {
        repositories {
            // google()
            // jcenter()
        }
        ...
    }

参考资料:

        配置AndroidStudio

        AndroidStudio Offline components

相关推荐

Airbnb开源项目
精选开源

Airbnb开源项目

Airbnb Engineering & Data ScienceAirflow Use Apache Airflow (incubating) to author workflows as directed acyclic graphs (DAGs) of tasks12,263Airpal Web UI for PrestoDB2,502Aerosolve A machine learning

2.3k
WilliamChart:轻量美观的 Android 图表库实战
精选开源

WilliamChart:轻量美观的 Android 图表库实战

WilliamChart:轻量美观的 Android 图表库实战数据可视化是运动、健康、金融、统计类 App 的刚需。MPAndroidChart 功能最全但偏重复杂,WilliamChart 走的则是"轻量 + 美观 + Kotlin 原生"路线——v3 用 Kotlin 完全重写,API 极简,一行 chart.animate(dataSet) 就能把数据画成带动画的折线/柱状/环形图,开箱即

175
sherpa解析:开源语音技术全家桶
精选开源

sherpa解析:开源语音技术全家桶

想在手机、树莓派甚至 RISC-V 开发板上离线跑语音识别,五年前还是个需要啃 Kaldi 源码的硬核课题。k2-fsa 组织的 sherpa 把这件事变成了"下载预训练模型、装个包、跑示例"的三步操作。这个以 Apache-2.0 协议开源的项目自我定位是"新一代 Kaldi 的语音转文本框架",它专注端到端模型的推理部署:transducer 与 CTC 两类架构,C++ 与 Python 双…

44