一、什么是Gradle益老?
Gradle是一種構(gòu)建工具,它可以幫你管理項(xiàng)目中的差異,依賴,編譯,打包,部署......,你可以定義滿足自己需要的構(gòu)建邏輯,寫入到build.gradle中供日后復(fù)用。
二擎勘、為什么要用Gradle茂嗓?
Gradle是比較先進(jìn)的構(gòu)建系統(tǒng)尘惧,也是一個(gè)很好的構(gòu)建工具惭适,允許通過插件自定義構(gòu)建邏輯
以下是為什么Android Studio選擇Gradle的主要原因:
- 使用領(lǐng)域?qū)S谜Z言(Domain Specific Language)來描述和處理構(gòu)建邏輯笙瑟。(以下簡(jiǎn)稱DSL)
- 基于Groovy。DSL可以混合各種聲明元素癞志,用代碼操控這些DSL元素達(dá)到邏輯自定義往枷。
- 支持已有的Maven或者Ivy倉(cāng)庫(kù)基礎(chǔ)建設(shè)
- 非常靈活,允許使用best practices凄杯,并不強(qiáng)制讓你遵照它的原則來错洁。
- 其它插件時(shí)可以暴露自己的DSL和API來讓Gradle構(gòu)建文件使用。
- 允許IDE集成盾舌,是很好的API工具墓臭。
三、如何使用Gradle妖谴?
我們能夠使用以下配置文件對(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è)置文件洼滚。
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'