Gradle(二) 更换仓库

如果Gradle在编译的时候没有在本地仓库中发现依赖,就会从远程仓库中下载,但是往往访问速度特别慢,不翻墙经常会下载超时或者需要很长时间导致Build失败,因此,可以用国内的仓库代替。

国内仓库

仓库 地址
aliyun http://maven.aliyun.com/nexus/content/groups/public/
OSChina http://maven.oschina.net/content/groups/public/

默认仓库

如果Gradle在编译的时候没有在本地仓库中发现依赖,就会从远程仓库中下载
默认的远程仓库为mavenCentral() ,也就是http://repo1.maven.org/maven2/

修改单独项目

在项目的build.gradle 文件中,修改repositories 配置

1
2
3
repositories {
mavenCentral()
}

改成:

1
2
3
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}

1
2
3
repositories {
maven{ url 'http://maven.oschina.net/content/groups/public/'}
}

这样就可以从国内的镜像中下载依赖,速度能提高不少。

修改所有项目

如果想一次更改所有的仓库地址,可以在Gradle工作主目录F:\drive\.gradle 文件夹下添加init.gradle 文件来配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
allprojects{
repositories {
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
url ALIYUN_JCENTER_URL
}
}
}

这样就可以在项目编译的时候从阿里的仓库中下载依赖了。

-------------- 本文结束  感谢您的阅读 --------------