Gradle教程Part1:安裝+啓動

翻譯自:http://rominirani.com/2014/07/28/gradle-tutorial-part-1-installation-setup/

在這個教程中,咱們將注意力集中在Gradle的啓動上。儘管Android Studio內置了Gradle,咱們如今的目標是理解Gradle的安裝,啓動,執行基本的Gradle命令。java

在咱們開始前,若是你想知道爲何Gradle是構建工具很好的選擇,我建議你閱讀這篇文章article。儘管須要基礎才能閱讀它,這篇文章將開拓你的視野爲何開發者如此擁簇Gradle.windows

接下來幾部分將會帶你安裝Gradle。Gradle須要java環境,我假設你是java開發者,已經安裝了java sdk在你的機器上。jvm

下載 Gradle

目前爲止,Gradle最新版是2.2.1能夠在這裏獲取。工具

下載zip文件到你機器上。你會發現它的文件名爲gradle-2.2.2-all.zip。將它解壓縮。學習

在個人機器上,我將它解壓到e:\gradle-2.2.1,因此我將看到以下的子文件夾:
圖片測試

你可能會問爲何你須要單獨安裝Gradle。若是你已經安裝了Android Studio你將會注意到這點。正如所知的,Android Studio內置了Gradle,不必再次安裝Gradle。gradle

後面的教程中咱們將會討論Android Studio,使用它內置的Gradle。這章和接下來的幾章咱們會從咱們本身安裝的Gradle開始,運行命令行,近距離得接觸它,以便理解他到底作了什麼。後面,當Android Studio作這些事的時候,咱們將更好的理解發生了什麼。你就不會認爲Android studio是在執行黑魔法。ui

如今,下載Gradle,啓動它吧。插件

環境變量設置

\bin文件夾包含了gradle批處理文件(unix和windows),你將用它運行命令。命令行

作接下來幾件事:
1.建立系統環境變量GRADLE_HOME將它指向Gradle安裝文件夾,在個人機器上是e:\gradle-2.2.1,所以我建立了GRADLE_HOME並將它的值指定爲e:\gradle-2.2.1
2.添加%GRADLE_HOME%\binPATH環境變量中。這將容許你在任何文件夾啓動gradle命令。

驗證是否安裝成功

爲了驗證是否安裝成功,打開終端,輸入以下命令:

gradle -v

這將會顯示gradle版本信息:

------------------------------------------------------------
Gradle 2.2.1
------------------------------------------------------------

Build time: 2014-11-24 09:45:35 UTC
Build number: none
Revision: 6fcb59c06f43a4e6b1bcb401f7686a8601a1fb4a

Groovy: 2.3.6
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM: 1.7.0_40 (Oracle Corporation 24.0-b56)
OS: Windows 7 6.1 amd64

若是你沒看到這些信息,檢查你的安裝,確保設置了環境變量。

A word about Groovy

任何缺乏Groovy關於Gradle的討論都是不完整的。Groovy是最受歡迎的運行於JVM上的語言。

Gradle有如下幾個優勢:
代碼簡潔
靈活
*使你能按你所想的配置
Groovy在其中扮演了重要的角色。不像在ant和Maven中使用的xml,Groovy是高級語言。全部高級語言有的特性,好比子句Groovy都支持。你但願Gradle運行的build文件確實是能夠運行的代碼。

一個問題是‘我須要學習Groovy嗎?’我認爲不必,除非你不使用約定而是按你本身的方式作事情,這樣你須要瞭解Groovy,由於這是Gradle靈活的來源。通常狀況下,你只使用接下來將會看到的build.gradle模板,儘管它包含Groovy語法,但你不須要徹底明白細節。

因此,儘管不須要你很好的掌握Groovy才能理解Gradle,但它幫助你更好的瞭解Groovy的威力。

基本的命令

如今咱們尚未寫任何源代碼或gradle文件,咱們接下來會這麼作。咱們嘗試接下來的幾個命令:

gradle -q help

這個命令打印基本的幫助信息。-q參數指定爲靜默模式,當有不少無效信息輸出時,這頗有效。

gradle -q tasks

這條命令列出了你可使用的命令。

gradle properties

這條命令列出了許多預約義的屬性。你能夠修改修改這些屬性在你的build文件中。

咱們不許備編譯java工程,這是下一篇作的事。咱們如今理解Groovy給Gradle帶來的威力。

開始以前,咱們先講講build.gradle文件。這是標準的build文件名。全部你但願執行的指令都放在這裏。這個系列的教程,咱們會在build.gradle文件上建立使用各類插件/任務,來幫咱們編譯、構建、測試、運行java應用。

如今,咱們作如下嘗試:
在一個文件夾,好比example1,建立build.gradle。
寫入以下內容:

task compileTask << { 
    System.out.println "compiling..." 
}

如今在你建立該文件的目錄下打開終端,輸入以下命令:

gradle -q tasks

這條命令將會列出全部的你能執行的任務,你會注意到除了標準的任務,還有咱們建立的任務compileTask

Other tasks
-----------
compileTask

這引出了咱們的第一個概念咱們的gradle構建文件由一系列咱們指定的任務構成,gradle構建系統爲咱們執行這些任務。目前咱們指定的任務是compileTask,如你看到的Groovy代碼,咱們惟一作的是System.out.pritnln。記住Groovy是高級語言。

如今,咱們怎麼運行compileTask呢?

在咱們開始前,有一點要明白,當咱們執行gradle命令時,它會在當前目錄中尋找build.gradle文件。若是找到就是用它。前面的例子中,系統能夠找到它,他決定了哪些任務能夠被執行。

若是咱們只輸入gradle不帶任何參數,也不指定任何任務會發生什麼。咱們試試看:

gradle

將會有以下輸出:

:help
Welcome to Gradle 2.2.1.
To run a build, run gradle <task> ...
To see a list of available tasks, run gradle tasks
To see a list of command-line options, run gradle --help
BUILD SUCCESSFUL
Total time: 2.39 secs

這很清楚的告訴你你須要指定任務名。好比gradle 。咱們給出以下命令:

gradle -q compileTaks

將會有以下輸出:

compiling...

咱們改進下build.gradle文件增長另外一個任務,如今看起來像這樣:

task compileTask << {
 System.out.println "compiling..." 
}

task buildTask << {
 System.out.println "building..."
}

如今,若是你給出以下命令:

gradle -q tasks

你會發現這兩個任務都會列在oterTasks下:

Other tasks
-----------
buildTask
compileTask

你能夠運行這些任務經過gradle compileTaskgradle buildTask

若是咱們想去建立一個默認的任務,以便咱們不須要顯示的指定任務名就能夠執行。

爲了達到這樣的效果,修改build.gradle文件以下:

defaultTasks 'buildTask'

task compileTask << {
  System.out.println "compiling..." 
}

task buildTask << {
  System.out.println "building..."
}

如今咱們輸入gradle -q,將會輸出building...

最後一部分須要注意的是任務間的依賴。若是咱們想讓buildTask依賴compileTask,以便如buildTask運行了,就行運行compileTask

修改build.gradle文件以下:

defaultTasks 'buildTask'

task compileTask << {
  System.out.println "compiling..." 
}

task buildTask (dependsOn:compileTask) << {
  System.out.println "building..."
}

如今執行gradle -q將會有以下顯示:

compiling...
building...

咱們在這個章節所講的是很是基礎的Gradle知識。將build文件做爲一系列待執行的任務。若是你是java開發者有構建的經歷,你會注意到這樣的事實:要構建任何東西,咱們須要去作以下的事:編譯,構建,運行,測試,打包。這些在Gradle中都以任務存在。

咱們不須要去手工寫全部的這些任務,儘管你能夠這麼去作,只要你願意。使用Gradle遵循的約定和插件(plugins),咱們能夠執行一系列步驟去構建咱們的工程。

現有的插件有如java plugin, WAR pluginn, AppEngine plugin, Android plugin等,這些插件給出了預約義的任務。後面的章節,咱們將會看到更多。

下一章

在下一章中,咱們將使用gradle去編譯構建java工程。

相關文章
相關標籤/搜索