1. 程式人生 > >Gradle理論與實踐一:Gradle入門

Gradle理論與實踐一:Gradle入門

文章目錄

Gradle入門

Gradle一門DSL(Domain Specific Language,領域特定語言),Gradle基於Groovy語言,專門用來解決自動化構建。Gradle可以認為是一個框架,負責定義流程和規則。而具體的編譯工作則是通過外掛的方式來完成的。比如編譯 Java 有 Java 外掛,編譯 Groovy 有 Groovy 外掛,編譯 Android APP 有 Android APP 外掛,編譯 Android Library 有 Android Library 外掛。

1、配置Gradle環境

1、下載Gradle地址:https://gradle.org/

2、下載相應版本的Gradle,我的筆記本是Mac,下載的是v4.10.2版本:
image.png
3、下載完之後,我放到了/Users/mq/gradle-4.10.2/目錄下,要執行Gradle,必須把GRADLE_HOME/bin目錄新增到環境變數PATH的路徑才可以,下面是配置Mac的步驟:開啟Mac終端,輸入: open -e .bash_profile,開啟.bash_profile檔案,接著編輯.bash_profile檔案:

GRADLE_HOME=/Users/mq/gradle-4.10.2;
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin

如下:
image.png

儲存一下.bash_profile檔案,最後在終端上執行source ~/.bash_profile命令,更新.bash_profile檔案
4、最後驗證一下結果,進入到Gradle安裝目錄中,輸入命令cd /Users/mq/gradle-4.10.2/,接著輸入gradle -version或者gradle -v,如果結果如下就是安裝成功了:

mqdeMacBook-Pro:gradle-4.10.2 mq$ gradle -version

------------------------------------------------------------
Gradle 4.10.2
------------------------------------------------------------

Build time:   2018-09-19 18:10:15 UTC
Revision:     b4d8d5d170bb4ba516e88d7fe5647e2323d791dd

Kotlin DSL:   1.0-rc-6
Kotlin:       1.2.61
Groovy:       2.4.15
Ant:          Apache Ant(TM) version 1.9.11 compiled on March 23 2018
JVM:          1.8.0_151 (Oracle Corporation 25.151-b12)
OS:           Mac OS X 10.13.6 x86_64

2、Gradle之Hello World

找到Gradle安裝的目錄,其中有個/bin目錄,我的是/Users/mq/gradle-4.10.2/bin,開啟bin目錄並建立一個build.gradle檔案,寫入:

task hello << {
    print 'hello world'
}

在終端進入到對應的/bin目錄,輸入命令gradle -q hello, 輸出:

mqdeMacBook-Pro:test_gradle mq$ gradle -q hello
hello world

一個簡單的hello world就完成了,說明:build.gradle是Gradle預設的構建指令碼檔案,執行命令時會預設載入當前目錄下的build.gradle檔案。每個Gradle構建都包含三個基本構建塊:project、task、property.

3、gradle 與gradlew的區別

gradle版本會不斷更新,多人協作開發時,每個人使用的版本可能會不同。而gradlew(wrapper)可以看成是gradle的一層包裝,讓我們使用相同版本的gradle進行構建,我們在gradle -> wrapper中可以看到gradle-wrapper.properties檔案,制定了gradle的版本。

4、Gradle命令介紹

  • gradle projects 檢視工程資訊
  • gradle tasks 檢視任務資訊
  • gradle task name 執行task任務

5、Gradle 工作流程

以multi-project build為例,Gradle工作流程如下:

  • 初始化階段:首先解析settings.gradle
  • Configration階段:解析每個Project中的build.gradle,解析過程中並不會執行各個build.gradle中的task。
  • 經過Configration階段,Project之間及內部Task之間的關係就確定了。一個 Project 包含很多 Task,每個 Task 之間有依賴關係。Configuration 會建立一個有向圖來描述 Task 之間的依賴關係, 所有Project配置完成後,會有一個回撥project.afterEvaluate,表示所有的模組都已經配置完了。
  • 執行Task任務