Unity自动打包-Android Studio - Gradle配置阿里云镜像

Android Studio构建项目时会拉取gradle资源, 默认是使用海外镜像站, 经常连接超时。
所以使用国内的镜像站(阿里云镜像)解决Gradle下载依赖过慢的问题。
阿里云的公共仓库地址:http://maven.aliyun.com/mvn/view

1. 当前项目配置阿里云镜像

1.1 确保Android Studio未启用代理
File -> Settings -> Appearance&Behavior -> System Settings -> HTTP Proxy 中选中了 No Proxy
1.2 找到项目根目录下的 gradle.properties 文件,注释 proxy 设置(代理的地址和端口)
1.3 在Android项目的根目录下找到文件:build.gradle, 修改其中的buildscript和allprojects配置:

buildscript {
    ext {
        repositories = [
                'https://maven.aliyun.com/repository/central',
                'https://maven.aliyun.com/repository/jcenter',
                'https://maven.aliyun.com/repository/public',
                'https://maven.aliyun.com/repository/google',
                'https://maven.aliyun.com/repository/gradle-plugin', //阿里云插件镜像
                'http://repo.springsource.org/libs-milestone-local'  //配置Maven仓库的地址
        ]
    }
    repositories {
        rootProject.ext.repositories.each { repourl ->
            maven { url repourl }
        }
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4' //gradle版本, 注意使用需要的版本

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        rootProject.ext.repositories.each { repourl ->
            maven { url repourl }
        }
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

2. 全局配置(操作系统的当前用户)阿里云镜像

Gradle生命周期中有一个初始化(Initialization)的过程, 这个过程运行在build script之前, 我们可以定制全局设置
可以在以下几个位置配置仓库地址全局配置:
新建一个init.gradle文件到 USER_HOME.gradle\目录下
新建一个后缀是.gradle的文件到 USER_HOME.gradle\init.d\目录下
新建一个后缀是.gradle的文件到 GRADLE_HOME\init.d\目录下

def repoConfig = {
    all { ArtifactRepository repo ->
        if (repo instanceof MavenArtifactRepository) {
            def url = repo.url.toString()
            if (url.contains('repo1.maven.org/maven2') 
                || url.contains('jcenter.bintray.com') 
                || url.contains('dl.google.com/dl/android/maven2') 
                || url.contains('plugins.gradle.org/m2/')) {
                println "gradle init: (${repo.name}: ${repo.url}) removed"
                remove repo
            }
        }
    }

    maven { url 'https://maven.aliyun.com/repository/central' }
    maven { url 'https://maven.aliyun.com/repository/jcenter' }
    maven { url 'https://maven.aliyun.com/repository/public' }
    maven { url 'https://maven.aliyun.com/repository/google' }
    maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
}

allprojects {
    buildscript {
        repositories repoConfig
    }

    repositories repoConfig
}

验证是否修改成功
在 build.gradle文件内新增任务

task printRepos {
    doLast {
        repositories.each { repourl ->
            println "repository: ${repourl.name} ('${repourl.url}')"
        }
    }
}
#执行 gradle -q printRepos 任务, 验证配置是否生效

$ gradle -q printRepos

你可能感兴趣的:(Unity自动打包-Android Studio - Gradle配置阿里云镜像)