Gradle是一種構建工具,它拋棄了基於XML的構建指令碼,取而代之的是採用一種基於Groovy的內部領域特定語言。近期,Gradle獲得了極大的關注,這也是我決定去研究Gradle的原因。
這篇文章是Gradle教程的第一篇,我們有兩個目標:
- 1. 幫助我們學會安裝Gradle。
- 2. 介紹一些基本概念,這有助於我們進一步理解本教程的後面章節。
我們開始吧,先看一下如何安裝Gradle。
安裝Gradle
如果我們使用的作業系統是Windows或Linux,我們可以根據以下步驟安裝Gradle:
1. 從這個頁面下載二進位制檔案。
2. 解壓Zip檔案,加入環境變數(在PATH中加入GRADLE_HOME/bin目錄)。
如果在安裝過程中遇到問題,可以進一步檢視官方的安裝指南。
如果我們使用的作業系統是OS X,我們可以使用Homebrew安裝Gradle,在命令提示符中輸入以下命令:
1 |
brew install gradle |
我們可以驗證一下Gradle是否工作正常,在命令提示符中執行命令gradle -v即可,如果Gradle工作正常,我們應該能看到以下輸出結果(當然,Windows和Linux使用者看到的結果會有細微差異)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
> gradle -v ------------------------------------------------------------ Gradle 1.12 ------------------------------------------------------------ Build time: 2014-04-29 09:24:31 UTC Build number: none Revision: a831fa866d46cbee94e61a09af15f9dd95987421 Groovy: 1.8.6 Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013 Ivy: 2.2.0 JVM: 1.8.0 (Oracle Corporation 25.0-b70) OS: Mac OS X 10.9.3 x86_64 |
下面我們來快速瀏覽一下Gradle構建的基本概念。
Gradle構建簡介
在Gradle中,有兩個基本概念:專案和任務。請看以下詳解:
- 專案是指我們的構建產物(比如Jar包)或實施產物(將應用程式部署到生產環境)。一個專案包含一個或多個任務。
- 任務是指不可分的最小工作單元,執行構建工作(比如編譯專案或執行測試)。
那麼,這些概念和Gradle的構建又有什麼聯絡呢?好,每一次Gradle的構建都包含一個或多個專案。
下面這張圖展示了上面所談到的這些概念的關係。
我們能夠使用以下配置檔案對Gradle的構建進行配置:
- Gradle構建指令碼(build.gradle)指定了一個專案和它的任務。
- Gradle屬性檔案(gradle.properties)用來配置構建屬性。
- Gradle設定檔案(gradle.settings)對於只有一個專案的構建而言是可選的,如果我們的構建中包含多於一個專案,那麼它就是必須的,因為它描述了哪一個專案參與構建。每一個多專案的構建都必須在專案結構的根目錄中加入一個設定檔案。
你可以在這篇文章中獲得更多關於Gradle構建指令碼的資訊。
我們繼續,下面我們看一下如果使用Gradle外掛為構建工作加入新功能。
更簡短的Gradle外掛簡介
Gradle的設計理念是,所有有用的特性都由Gradle外掛提供,一個Gradle外掛能夠:
- 在專案中新增新任務
- 為新加入的任務提供預設配置,這個預設配置會在專案中注入新的約定(如原始檔位置)。
- 加入新的屬性,可以覆蓋外掛的預設配置屬性。
- 為專案加入新的依賴。
Gradle使用者手冊提供了一系列標準Gradle外掛。
在我們為專案加入Gradle外掛時,我們可以根據名稱或型別來指定Gradle外掛。
我們可以將下面這行程式碼加入到build.gradle檔案中,它通過名稱指定Gradle外掛(這裡的名稱是foo):
1 |
apply plugin: 'foo' |
另一方面,我們也可以通過型別指定Gradle外掛,將下面這行程式碼加入到build.gradle檔案中(這裡的型別是com.bar.foo):
1 |
apply plugin: 'com.bar.foo' |
你可以閱讀這篇文章,掌握應用外掛的更多資訊。
今天就到這裡,我們來總結一下我們所學的內容。
總結
這篇教程講授了三部分內容:
- 我們學會了如何安裝Gradle
- 我們理解了Gradle構建的一些基本知識
- 我們瞭解瞭如何使用Gradle外掛為我們的構建工作增加功能。
下一篇教程,我們會討論如何使用Gradle建立一個簡單的Java工程。