前言
这其实是一个烂大街的教程了。百度上一堆解决方案,好用的没几个。所以决定温习一下,因为最近写了几个Flutter插件,有很人多表示无法下载Android依赖,于是乎又是翻墙又是如何如何。其实gradle依赖是不需要翻墙的,不过下载速度很不美妙,加之一些网络状况也不是太好,所以需要使用国内镜像来解决这个问题。当然了,使用国内镜像也可能会有弊端,如更新不及时,但是确实可以解决问题。
简单玩法
简单玩法其实就是直接修改项目根目录的build.gradle就好:
allprojects {
repositories {
google()
jcenter()
// maven库
def cn = "http://maven.aliyun.com/nexus/content/groups/public/"
def abroad = "http://central.maven.org/maven2/"
// 先从url中下载jar若没有找到,则在artifactUrls中寻找
maven {
url cn
artifactUrls abroad
}
}
}
高级玩法
如果每个项目都配置一遍可能略显麻烦,所以我们可以为初gradle写一个初始化脚本。
在~/.gradle/目录下新建一个init.gradle文件(Windows默认是C:\Users\UserName\
.gradle),并录入以下内容:
allprojects{
repositories {
google()
def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
remove repo
}
}
}
maven { url ALIYUN_REPOSITORY_URL }
maven { url ALIYUN_JCENTER_URL }
}
}
当然了,也可以将这段脚本放在项目根目录下的build.gradle中。
以上,再次build时候就会飞一样。
- 参考 :Gradle官网文档init_scripts。