本地倉庫配置
配置環境變量GRADLE_USER_HOME,並指向你的一個本地目錄,用來保存Gradle下載的依賴包。
遠程倉庫配置
一般Gradle、maven從中央倉庫mavenCentral() http://repo1.maven.org/maven2/下載依賴包,但是在國內下載速度巨慢,我們只能使用國內的鏡像。
所以每個Gradle構建的項目中,我們可以在build.gradle做如下配置
repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } mavenCentral() }
每個項目都如此配置難免麻煩些,我們可以配置一個全局配置文件。
.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/')) { project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL." remove repo } } } maven { url REPOSITORY_URL } } }
init.gradle簡介
init.gradle文件在build開始之前執行,所以你可以在這個文件配置一些你想預先加載的操作
例如配置build日志輸出、配置你的機器信息,比如jdk安裝目錄,配置在build時必須個人信息,比如倉庫或者數據庫的認證信息,and so on.
啟用init.gradle文件的方法:
1、在命令行指定文件,例如:gradle –init-script yourdir/init.gradle -q taskName.你可以多次輸入此命令來指定多個init文件
2、把init.gradle文件放到USER_HOME/.gradle/ 目錄下.
3、把以.gradle結尾的文件放到USER_HOME/.gradle/init.d/ 目錄下.
4、把以.gradle結尾的文件放到GRADLE_HOME/init.d/ 目錄下.
如果存在上面的4種方式的2種以上,gradle會按上面的1-4序號依次執行這些文件,如果給定目錄下存在多個init腳本,會按拼音a-z順序執行這些腳本
類似於build.gradle腳本,init腳本有時groovy語言腳本。每個init腳本都存在一個對應的gradle實例,你在這個文件中調用的所有方法和屬性,都會
委托給這個gradle實例,每個init腳本都實現了Script接口
下面的例子是在build執行之前給所有的項目制定maven本地庫,這個例子同時在 build.gradle文件指定了maven的倉庫中心,注意它們之間異同
build.gradle
repositories { mavenCentral() } task showRepos << { println "All repos:" println repositories.collect { it.name } }
init.gradle
allprojects { repositories { mavenLocal() } }
在命令行輸入命令
gradle –init-script init.gradle -q showRepos
輸出為:
> gradle --init-script init.gradle -q showRepos
All repos:
[MavenLocal, MavenRepo]
常用倉庫列表
repositories { mavenCentral() maven { url "https://jitpack.io" } maven { url "http://maven.aliyun.com/nexus/content/groups/public/" } maven { url 'http://maven.oschina.net/content/groups/public/' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } maven { url "http://maven.springframework.org/release" } maven { url "http://maven.restlet.org" } maven { url "http://mirrors.ibiblio.org/maven2" } maven { url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" } maven { url 'https://maven.fabric.io/public' } jcenter() google() }