用aliyun的Maven仓库下载Android Studio内依赖包

Android Studio 3.0以后,以下状况基本不会发生了,就当方法废弃吧

从GitHub导入新项目时,总是在gradle运行中卡壳,各种依赖包无法从jcenter或者Maven仓库下载下来,公司网也差……一上午就这么废了。
如果你也跟我拥有同样的烦恼,来试试下面这个解决方案吧。

1.先在.gradle的目录中新建一个文件(init.gradle)

Windows:放在 “C:\Users\(替换为你的)Administrator\.gradle” 目录下

《用aliyun的Maven仓库下载Android Studio内依赖包》 init.gradle位置

Ubuntu:放在 “/home/(替换为你的)用户名/.gradle” 目录下

《用aliyun的Maven仓库下载Android Studio内依赖包》 init.gradle位置

init.gradle 文件会在gradle 命令行运行时先被调用来进行初始化,gradle语言使用的是Groovy,跟Java类似

allprojects{
    repositories {
        def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
        all { ArtifactRepository repo ->
            def url = repo.url.toString()
            if ((repo instanceof MavenArtifactRepository) && (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com'))) {
                project.logger.lifecycle 'Repository ${repo.url} replaced by $REPOSITORY_URL .'
                remove repo
            }
        }
        maven {
            url REPOSITORY_URL
        }
    }
}

我用这种方法之前,给Android Studio挂上过代理,所以左侧的两个properties文件中会保留127.0.0.1和端口信息两条语句,以后用不着代理的,可以删除。

《用aliyun的Maven仓库下载Android Studio内依赖包》 代理

在Android Studio中验证gradle版本,
Windows:gradlew -v 或 gradle -v
Ubuntu:gradle -v (为什么今天运行./gradlew -v说权限不足呢……TAT)

《用aliyun的Maven仓库下载Android Studio内依赖包》 验证gradle版本

如果如下图,恭喜,不需要配置了

《用aliyun的Maven仓库下载Android Studio内依赖包》 gradle版本.png

****以后开启软件,如果gradle自动构建失败,你可以在界面右下角手动停止,然后在终端中输入 (windows) “gradlew”; (ubuntu) “./gradlew” 即可build整个project****

《用aliyun的Maven仓库下载Android Studio内依赖包》 gradle设置

按我的理解,其实gradlew不是真正在操作系统环境下运行gradle命令,而仅仅是基于Android Studio环境来运行的。

要想配置好AS的gradle环境,需要打开settings界面的Gradle选项。

对了,当然还是推荐手动配置OS的gradle环境变量,恩,自行百度……

Use default gradle wrapper(recommended):表示使用默认的gradle版本当作运行环境,如果没有缓存到本地”.gradle/wrapper/dists”目录下,则自动到服务器上去下载,恩,一般新导入的项目运行缓慢,大都是正在网上下载这玩意儿。

Use local gradle distribution“:选用本地的gradle目录,恩,这个依赖本地Jdk包一样,去官网下载一个版本的zip解压到本地,然后配置目录而已。以后就省心了,注意,gradle版本别超过你的Android Studio可支持的版本,比如AS 2.2.3支持gradle最高为2.14.1。

Offine work“:就是离线运行啦,只调用本地.gradle文件夹下面的缓存(大概)

OK大致就是这样的,可能还有一些没想到的,之后再补充吧。

    原文作者:爱因斯坦福
    原文地址: https://www.jianshu.com/p/990cce313272
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞