<NO.1>自從用了Android Studio,Gradle是必須學(xué)了...

Gradle是一種構(gòu)建工具,它拋棄了基于XML的構(gòu)建腳本,取而代之的是采用一種基于Groovy的內(nèi)部領(lǐng)域特定語(yǔ)言。近期,Gradle獲得了極大的關(guān)注,這也是我決定去研究Gradle的原因。

這篇文章是Gradle教程的第一篇,我們有兩個(gè)目標(biāo):

1. 幫助我們學(xué)會(huì)安裝Gradle。

2. 介紹一些基本概念,這有助于我們進(jìn)一步理解本教程的后面章節(jié)。

我們開始吧,先看一下如何安裝Gradle。

安裝Gradle

如果我們使用的操作系統(tǒng)是Windows或Linux,我們可以根據(jù)以下步驟安裝Gradle:

1. 從這個(gè)頁(yè)面下載二進(jìn)制文件。

2. 解壓Zip文件,加入環(huán)境變量(在PATH中加入GRADLE_HOME/bin目錄)。

如果在安裝過程中遇到問題,可以進(jìn)一步查看官方的安裝指南。

如果我們使用的操作系統(tǒng)是OS X,我們可以使用Homebrew安裝Gradle,在命令提示符中輸入以下命令:

brew install gradle

我們可以驗(yàn)證一下Gradle是否工作正常,在命令提示符中執(zhí)行命令gradle -v即可,如果Gradle工作正常,我們應(yīng)該能看到以下輸出結(jié)果(當(dāng)然,Windows和Linux用戶看到的結(jié)果會(huì)有細(xì)微差異)。

> 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構(gòu)建的基本概念。

Gradle構(gòu)建簡(jiǎn)介

在Gradle中,有兩個(gè)基本概念:項(xiàng)目和任務(wù)。請(qǐng)看以下詳解:

項(xiàng)目是指我們的構(gòu)建產(chǎn)物(比如Jar包)或?qū)嵤┊a(chǎn)物(將應(yīng)用程序部署到生產(chǎn)環(huán)境)。一個(gè)項(xiàng)目包含一個(gè)或多個(gè)任務(wù)。

任務(wù)是指不可分的最小工作單元,執(zhí)行構(gòu)建工作(比如編譯項(xiàng)目或執(zhí)行測(cè)試)。

那么,這些概念和Gradle的構(gòu)建又有什么聯(lián)系呢?好,每一次Gradle的構(gòu)建都包含一個(gè)或多個(gè)項(xiàng)目。

下面這張圖展示了上面所談到的這些概念的關(guān)系。

我們能夠使用以下配置文件對(duì)Gradle的構(gòu)建進(jìn)行配置:

Gradle構(gòu)建腳本(build.gradle)指定了一個(gè)項(xiàng)目和它的任務(wù)。

Gradle屬性文件(gradle.properties)用來配置構(gòu)建屬性。

Gradle設(shè)置文件(gradle.settings)對(duì)于只有一個(gè)項(xiàng)目的構(gòu)建而言是可選的,如果我們的構(gòu)建中包含多于一個(gè)項(xiàng)目,那么它就是必須的,因?yàn)樗枋隽四囊粋€(gè)項(xiàng)目參與構(gòu)建。每一個(gè)多項(xiàng)目的構(gòu)建都必須在項(xiàng)目結(jié)構(gòu)的根目錄中加入一個(gè)設(shè)置文件。

你可以在這篇文章中獲得更多關(guān)于Gradle構(gòu)建腳本的信息。

我們繼續(xù),下面我們看一下如果使用Gradle插件為構(gòu)建工作加入新功能。

更簡(jiǎn)短的Gradle插件簡(jiǎn)介

Gradle的設(shè)計(jì)理念是,所有有用的特性都由Gradle插件提供,一個(gè)Gradle插件能夠:

在項(xiàng)目中添加新任務(wù)

為新加入的任務(wù)提供默認(rèn)配置,這個(gè)默認(rèn)配置會(huì)在項(xiàng)目中注入新的約定(如源文件位置)。

加入新的屬性,可以覆蓋插件的默認(rèn)配置屬性。

為項(xiàng)目加入新的依賴。

Gradle用戶手冊(cè)提供了一系列標(biāo)準(zhǔn)Gradle插件。

在我們?yōu)轫?xiàng)目加入Gradle插件時(shí),我們可以根據(jù)名稱或類型來指定Gradle插件。

我們可以將下面這行代碼加入到build.gradle文件中,它通過名稱指定Gradle插件(這里的名稱是foo):

apply plugin: 'foo'

另一方面,我們也可以通過類型指定Gradle插件,將下面這行代碼加入到build.gradle文件中(這里的類型是com.bar.foo):

apply plugin: 'com.bar.foo'

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,837評(píng)論 18 139
  • 盡管我們可以僅使用單個(gè)組件來創(chuàng)建可工作的應(yīng)用程序,但有時(shí)候更廣泛的做法是將應(yīng)用程序劃分為多個(gè)更小的模塊。 由于這是...
    XLsn0w閱讀 404評(píng)論 0 4
  • 在現(xiàn)實(shí)生活中,要?jiǎng)?chuàng)造一個(gè)沒有任何外部依賴的應(yīng)用程序并非不可能,但也是極具挑戰(zhàn)的。這也是為什么依賴管理對(duì)于每個(gè)軟件項(xiàng)...
    XLsn0w閱讀 493評(píng)論 0 0
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,819評(píng)論 25 708
  • 邂逅之冰箱,地點(diǎn):醫(yī)院。夜班隨手打開冰箱,看到了溫柔的燈光;頗低的溫度與之相反,遂拍之。 邂逅之狗尾巴草,地點(diǎn):重...
    GypsyRisk閱讀 213評(píng)論 0 1