Gradle理論與實踐一:Gradle入門

Gradle系列相關文章
1、Gradle理論與實踐一:Gradle入門
2、Gradle理論與實踐二:Groovy介紹
3、Gradle理論與實踐三:Gradle構建腳本基礎
4、Gradle理論與實踐四:自定義Gradle插件
5、Gradle配置subprojects和allprojects的區別:subprojects和allprojects的區別

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版本:


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

如下:


保存一下.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的版本。

注:有時候輸入gradlew命令時,會提示./gradlew: Permission denied , 在控制檯輸入chmod +x gradlew, 該命令的作用是是Linux下去除執行權限。詳情見:
https://stackoverflow.com/questions/17668265/gradlew-permission-denied

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任務
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章