Gradle安裝與配置


一、Gradle安裝

1、Gradle安裝
(1)先安裝JDK/JRE
(2)Gradle下載官網 Gradle官網
(3)解壓安裝包到想安裝到的目錄。如D:\java\gradle-5.2.1
(4)配置環境變量。
        變量名:GRADLE_HOME
        變量值:解壓到的目錄
        
(5)添加到path
        變量名:Path
        變量值:%GRADLE_HOME%\bin;
        

2、Gradle配置
(1)配置本地倉庫
        變量名:GRADLE_USER_HOME
        變量值:自定義Gradle倉庫目錄或者Maven的倉庫目錄
        
(2)配置倉庫源
        在Gradle安裝目錄下的 init.d 文件夾下,新建一個 init.gradle 文件,里面填寫以下配置。

allprojects {
    repositories {
        maven { url 'file:///C:/Java/maven_repository'}
        mavenLocal()
        maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
        maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }
        mavenCentral()
    }

    buildscript { 
        repositories { 
            maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
            maven { name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' }
            maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
        }
    }
}

      repositories中寫的是獲取jar包的順序。先是本地的Maven倉庫路徑;接着的mavenLocal()是獲取Maven本地倉庫的路徑,應該是和第一條一樣,但是不沖突;第三條和第四條是從國內和國外的網絡上倉庫獲取;最后的 mavenCentral() 是從Apache提供的中央倉庫獲取jar包。
(3)配置到IDEA
        在IDEA的Setting里打開"Build, Execution, Deployment"-"Build Tools"-"Gradle"。
        勾選 Use local Gradle distribution,在 Gradle home中選擇安裝的Gradle的路徑。
        如果在變量和配置文件中設置了Gradle的倉庫路徑,在Service directory path中就會自動填寫地址,如果想改的話可以手動修改。
        

二、Gradle倉庫配置

1、本地倉庫配置
      配置環境變量GRADLE_USER_HOME,並指向你的一個本地目錄,用來保存Gradle下載的依賴包。
      

2、遠程倉庫配置
      一般Gradle、maven從中央倉庫mavenCentral()(http://repo1.maven.org/maven2/)下載依賴包,但是在國內下載速度巨慢,我們只能使用國內的鏡像。
所以每個Gradle構建的項目中,我們可以在build.gradle做如下配置

repositories {
    maven {
        url 'http://maven.aliyun.com/nexus/content/groups/public/'
    }
    mavenCentral()
}

3、全局倉庫配置
      每個項目都單獨配置難免麻煩些,我們可以配置一個全局配置文件。gradle加載全局配置按優先級順序有如下四種方式:
(1)通過--I 或者--init-script參數在構建開始時指定路徑,如

    gradle --init-script init.gradle clean
    gradle --I init.gradle clean

      init.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
        }
    }
}

(2)加載USER_HOME/.gradle/init.gradle文件
(3)加載USER_HOME/.gradle/init.d/目錄下的以.gradle結尾的文件
(4)加載GRADLE_HOME/init.d/目錄下的以.gradle結尾的文件

三、Gradle倉庫配置詳解
      支持的類型有如下幾種:

類型 說明
Maven central repository 這是Maven的中央倉庫,無需配置,直接聲明就可以使用。但不支持https協議訪問
Maven JCenter repository JCenter中央倉庫,實際也是是用的maven搭建的,但相比Maven倉庫更友好,通過CDN分發,並且支持https訪問。
Maven local repository Maven本地的倉庫,可以通過本地配置文件進行配置
Maven repository 常規的第三方Maven倉庫,可設置訪問Url
Ivy repository Ivy倉庫,可以是本地倉庫,也可以是遠程倉庫
Flat directory repository 使用本地文件夾作為倉庫

1、Maven central repository
      在build.gradle中配置:

repositories {
    mavenCentral()
}

      就可以直接使用了。
2、Maven JCenter repository
      最常用也是Android Studio默認配置:

repositories {
    jcenter()
}

      這時使用jcenter倉庫是通過https訪問的,如果想切換成http協議訪問,需要修改配置:

repositories {
    jcenter {
        url "http://jcenter.bintray.com"
    }
}

3、Local Maven repository
      可以使用Maven本地的倉庫。默認情況下,本地倉庫位於USER_HOME/.m2/repository(例如windows環境中,在C:\Users\NAME.m2.repository),同時可以通過USER_HOME/.m2/下的settings.xml配置文件修改默認路徑位置。
      若使用本地倉庫在build.gradle中進行如下配置:

repositories {
    mavenLocal()
}

4、Maven repositories
      第三方的配置也很簡單,直接指明url即可:

repositories {
    maven {
        url "http://repo.mycompany.com/maven2"
    }
}

5、ivy repositories
      配置如下:

repositories {
    ivy {
        url "http://repo.mycompany.com/repo"
    }
}

6、Flat directory repository
      使用本地文件夾,這個也比較常用。直接在build.gradle中聲明文件夾路徑:

repositories {
    flatDir {
        dirs 'lib'
    }
    flatDir {
        dirs 'lib1', 'lib2'
    }
}

      使用本地文件夾時,就不支持配置元數據格式的信息了(POM文件)。並且Gradle會優先使用服務器倉庫中的庫文件:例如同時聲明了jcenter和flatDir,當flatDir中的庫文件同樣在jcenter中存在,gradle會優先使用jcenter的。

7、常用倉庫

repositories {
    mavenCentral()
    maven { url "https://jitpack.io" }
    maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
    https://plugins.gradle.org/m2/
    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()
}

四、Gradle Wrapper使用

      對於所有Gradle項目來說,都推薦使用Gradle Wrapper,甚至應該將其當做創建代碼庫之后的第一件事來做。使用Gradle Wrapper有以下好處:
      (1)不用安裝Gradle也能運行Gradle
      (2)所有人使用相同版本的Gradle

      在build.gradle中加入以下配置:

task wrapper(type: Wrapper) {
    gradleVersion = '4.6'
}

      然后再運行gradle wrapper,此時會生成gradlew、gradle.bat兩個文件和gradle目錄。這里的gradlew和gradle.bat是腳本文件,在使用gradle命令的地方替換為gradlew或gradle.bat,它們將自動下載指定版本的gradle,然后使用該版本進行項目構建。
      請注意,這3個文件是要提交到代碼庫上的,當項目其他人拿到代碼之后,由於gradlew和gradle.bat均在源代碼中,他們本地即使沒有安裝gradle,也能通過./gradlew build命令進行項目構建。


參考[1]Gradle的安裝與配置
      [2]Gradle學習(一)gradle本地、遠程倉庫配置
      [3]Gradle倉庫配置
      [4]一篇文章講清楚Gradle與Gradle Wrapper的區別


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM