近來遷移了一些項(xiàng)目到Android Studio,采用Gradle構(gòu)建確實(shí)比原來的Ant方便許多。但是編譯時(shí)下載依賴的網(wǎng)速又著實(shí)令人蛋疼不已。
如果能切換到國內(nèi)的Maven鏡像倉庫,如開源中國的Maven庫,又或者是換成自建的Maven私服,那想必是極好的。
一個(gè)簡單的辦法,修改項(xiàng)目根目錄下的build.gradle,將jcenter()或者mavenCentral()替換掉即可:
allprojects {
repositories {
maven{ url 'http://maven.oschina.net/content/groups/public/'}
}
}
但是架不住項(xiàng)目多,難不成每個(gè)都改一遍么?
自然是有省事的辦法,將下面這段Copy到名為init.gradle文件中,并保存到 USER_HOME/.gradle/文件夾下即可。
allprojects{
repositories {
def REPOSITORY_URL = 'http://maven.oschina.net/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/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
maven {
url REPOSITORY_URL
}
}
}
init.gradle文件其實(shí)是Gradle的初始化腳本(Initialization Scripts),也是運(yùn)行時(shí)的全局配置。
更詳細(xì)的介紹請(qǐng)參閱 http://gradle.org/docs/current/userguide/init_scripts.html
Reference
Dependency Management
Change Gradle mavenCentral URL to My repo
What is included in JCenter repository in Gradle?