如果
Gradle
在編譯的時候沒有在本地倉庫中發現依賴,就會從遠程倉庫中下載,默認的遠程倉庫為mavenCentral()
,也就是http://repo1.maven.org/maven2/,但是往往訪問速度特別慢,不翻牆經常會下載超時或者需要很長時間導致Build失敗,因此,可以用國內的倉庫代替:
修改單獨項目
在項目的build.gradle
文件中,修改repositories
配置
由:
repositories { mavenCentral() }
改為:
repositories { maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} }
或:
repositories { maven{ url 'http://maven.oschina.net/content/groups/public/'} }
這樣就可以從國內的鏡像中下載依賴,速度能提高不少
注意:
- build.gradle文件里有兩處repositories,都需要改掉
- 阿里雲的速度比較快,更穩定
更改所有項目
如果想一次更改所有的倉庫地址,可以在USER_HOME/.gradle/
(如C:\Users\hellowood\.gradle
)文件夾下添加init.gradle
文件來配置
- init.gradle
allprojects{
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/' all { ArtifactRepository repo -> if(repo instanceof MavenArtifactRepository){ def url = repo.url.toString() if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) { remove repo } } } maven { url REPOSITORY_URL } } }
這樣就可以在項目編譯的時候從阿里的倉庫中下載依賴了
init.build
腳本可以參考https://docs.gradle.org/current/userguide/init_scripts.htm