W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
這里簡(jiǎn)述下 Gradle 的特點(diǎn).
1. 聲明式構(gòu)建和合約構(gòu)建
Gradle 的核心是基于 Groovy 的 領(lǐng)域特定語(yǔ)言 (DSL), 具有十分優(yōu)秀的擴(kuò)展性. Gradle 通過(guò)提供可以隨意集成的聲明式語(yǔ)言元素將聲明性構(gòu)建推到了一個(gè)新的高度. 這些元素也為 Java, Groovy, OSGi, Web 和Scala 等項(xiàng)目提供基于合約構(gòu)建的支持. 而且, 這種聲明式語(yǔ)言是可擴(kuò)展的. 你可以添加自己的語(yǔ)言元素或加強(qiáng)現(xiàn)有的語(yǔ)言元素, 從而提供簡(jiǎn)潔, 易于維護(hù)和易于理解的構(gòu)建.
2. 基于依賴的編程語(yǔ)言
聲明式語(yǔ)言位于通用任務(wù)圖 ( general purpose task graph ) 的頂端,它可以被充分利用在你的構(gòu)建中. 它具有強(qiáng)大的靈活性, 可以滿足使用者對(duì) Gradle 的一些特別的需求.
3. 讓構(gòu)建結(jié)構(gòu)化
Gradle 的易適應(yīng)性和豐富性可讓你在構(gòu)建里直接套用通用的設(shè)計(jì)原則. 例如, 你可以非常容易地使用一些可重用的組件來(lái)構(gòu)成你的構(gòu)建. 但是不必要的間接內(nèi)聯(lián)內(nèi)容是不合適的. 不要強(qiáng)行拆分已經(jīng)結(jié)合在一起的部分 (例如, 在你的項(xiàng)目層次結(jié)構(gòu)中). 避免使構(gòu)建難以維護(hù). 總之, 你可以創(chuàng)建一個(gè)結(jié)構(gòu)良好,易于維護(hù)和易于理解的構(gòu)建.
4. API深化
你會(huì)非常樂(lè)意在整個(gè)構(gòu)建執(zhí)行的生命周期中使用 Gradle, 因?yàn)镚radle 允許你管理和定制它的配置和執(zhí)行行為.
5. Gradle 擴(kuò)展
Gradle 擴(kuò)展得非常好. 不管是簡(jiǎn)單的獨(dú)立項(xiàng)目還是大型的多項(xiàng)目構(gòu)建, 它都能顯著的提高效率. 這是真正的結(jié)構(gòu)構(gòu)建. 頂尖水平的構(gòu)建功能,還可以解決許多大公司碰到的構(gòu)建 性能低下的問(wèn)題.
6. 多項(xiàng)目構(gòu)建
Gradle 對(duì)多項(xiàng)目的支持是非常出色的. 項(xiàng)目依賴是很重要的部分. 它允許你模擬在多項(xiàng)目構(gòu)建中項(xiàng)目的關(guān)系,這正是你所要關(guān)注的地方. Gradle 可以適應(yīng)你的項(xiàng)目的結(jié)構(gòu), 而不是反過(guò)來(lái).
Gradle 提供了局部構(gòu)建的功能. 如果你構(gòu)建一個(gè)單獨(dú)的子項(xiàng)目, Gradle 會(huì)構(gòu)建這個(gè)子項(xiàng)目依賴的所有子項(xiàng)目. 你也可以選擇依賴于另一個(gè)特別的子項(xiàng)目重新構(gòu)建這些子項(xiàng)目. 這樣在一些大型項(xiàng)目里就可以節(jié)省非常多的時(shí)間.
7. 多種方式來(lái)管理你的依賴
不同的團(tuán)隊(duì)有不同的管理外部依賴的方法. Gradle 對(duì)于任何管理策略都提供了合適的支持. 從遠(yuǎn)程 Maven 和 Ivy 庫(kù)的依賴管理到本地文件系統(tǒng)的 jars 或者 dirs.
8. Gradle 是第一個(gè)構(gòu)建整合工具
Ant 的 tasks是 Gradle 中很重要的部分, 更有趣是 Ant 的 projects 也是十分重要的部分. Gradle 可以直接引入Ant 項(xiàng)目, 并在運(yùn)行時(shí)直接將 Ant targets 轉(zhuǎn)換成 Gradle tasks. 你可以從 Gradle 中依賴它們, 并增強(qiáng)它們的功能, 甚至可以在 build.xml 文件中聲明 Gradle tasks 的依賴. 并且properties, paths 等也可以通過(guò)同樣的方法集成進(jìn)來(lái).
Gradle 完全支持你已有的 Maven 或者 lvy 倉(cāng)庫(kù)來(lái)構(gòu)造發(fā)布或者提取依賴. Gradle 也提供了一個(gè)轉(zhuǎn)化器, 用來(lái)將 maven 的 pom.xml 文件轉(zhuǎn)換成 Gradle 腳本. 在運(yùn)行時(shí)引入 Maven 項(xiàng)目也會(huì)在稍后推出.
9. 易于遷移
Gradle 可以兼容任何結(jié)構(gòu). 因此你可以直接在你的產(chǎn)品構(gòu)建的分支上開(kāi)發(fā)你的 Gradle 構(gòu)建, 并且二者可以并行. 我們通常建議編寫(xiě)一些測(cè)試代碼來(lái)確保它們的功能是相同的. 通過(guò)這種方式, 在遷移的時(shí)候就不會(huì)顯得那么混亂和不可靠, 這是通過(guò)嬰兒學(xué)步的方式來(lái)獲得最佳的實(shí)踐.
10. Groovy
Gradle 的構(gòu)建腳本是通過(guò) Groovy 編寫(xiě)的而不是 XML. 但是并不像其他方式, 這并不是為了簡(jiǎn)單的展示用動(dòng)態(tài)語(yǔ)言編寫(xiě)的原始腳本有多么強(qiáng)大. 不然的話, 只會(huì)導(dǎo)致維護(hù)構(gòu)建變得非常困難. Gradle 的整個(gè)設(shè)計(jì)是朝著一種語(yǔ)言的方向開(kāi)發(fā)的, 并不是一種死板的框架. Groovy 就像膠水一樣, 把你想實(shí)現(xiàn)的構(gòu)想和抽象的 Gradle 粘在一起. Gradle提供了一些標(biāo)準(zhǔn)的構(gòu)想, 但是他們并不享有任何形式的特權(quán). 相比于其他聲明式構(gòu)建系統(tǒng),對(duì)我們來(lái)說(shuō)這是一個(gè)比較突出的特點(diǎn).
10. Gradle 包裝器
Gradle 包裝器允許你在沒(méi)有安裝 Gradle 的機(jī)器上運(yùn)行 Gradle 構(gòu)建. 在一些持續(xù)集成的服務(wù)器上, 這個(gè)功能將非常有用. 它同樣也能降低使用一個(gè)開(kāi)源項(xiàng)目的門(mén)檻, 也就是說(shuō)構(gòu)建它將會(huì)非常簡(jiǎn)單. 這個(gè)包裝器對(duì)于公司來(lái)說(shuō)也是很有吸引力的. 它并不需要為客戶機(jī)提供相應(yīng)的管理防范. 這種方式同樣也能強(qiáng)制某一個(gè)版本 Gradle 的使用從而最小化某些支持問(wèn)題.
11. 免費(fèi)和開(kāi)源
Gradle 是一個(gè)開(kāi)源項(xiàng)目, 遵循 ASL 許可.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: