為Gradle設定映象,解決jcenter依賴無法下載或者下載過慢問題
前言
這其實是一個爛大街的教程了。百度上一堆解決方案,好用的沒幾個。所以決定溫習一下,因為最近寫了幾個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 { 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 } } }
當然了,也可以將這段指令碼放在專案根目錄下的build.gradle 中。
以上,再次build時候就會飛一樣。