【Gradle用戶指南】Gradle特點介紹
本篇文章翻譯自《Gradle User Guide》,若想查看原文,請戳http://www.gradle.org/ 。
1.介紹
我們想介紹Gradle給你,Gradle是一個構建系統,我們認為這是在Java世界里的一個飛躍式的發展。
Gradle提供給我們:
(1)一個像Ant一樣非常靈活的通用構建工具
(2)一種可切換的,像Maven一樣基于約定的構建框架,約定優于配置
(3)強大的對于多工程構建的支持
(4)強大的基于Apache lvy的依賴管理
(5)完全支持現有的Maven和lvy倉庫
(6)支持傳遞性依賴管理,而不需要遠程倉庫或者是pom.xml和ivy.xml文件
(7)非常適合構建Ant tasks和build
(8)Groovy構建腳本
(9)非常豐富的域模型來描述你的構建
在第二單元,你會發現更多的關于Gradle的概述,除此之外,還有更多的教程在等著你,學的高興:-)
1.1關于這個用戶指導
關于這個用戶指南,就像是Gradle本身,正在處于飛速發展中。關于Gradle的一些部分還沒有完成,有一些內容不準確,或者假定你已經知道了很多關于Gradle的知識。我們需要你去完善這個用戶指南,你可以在Gradle的官網上找到更多的文檔。
在這份文檔中,你會發現一些圖表,用來表示task之間的依賴關系。這些工具類似于UML中的依賴符號,第一個task指向另外一個task,代表第一個task依賴于另一個。
2.概述
2.1特點
下面的列表是Gradle的特點:
(1)聲明構建和協議構建
Gradle的核心是基于Groovy的豐富的可擴展的領域特定語言(DSL),通過提供你自定義的聲明語言元素,Gradle把依賴關系傳遞到下一層中,這些元素也提供了對很多語言的協議構建支持,比如java、Groovy,OSGI,Web和Scala項目。甚至,聲明語言是可擴展的,你可以有自己的新語言元素或者是加強現有的。這樣,就提供了一個簡潔、易于維護和理解的構建過程。
(2)依賴型編程語言
聲明式的語言構建于一個通用的任務圖之上,在你的構建任務重可以充分的利用。它提供了適應你獨特需求的最大靈活度的工具。
(3)結構化構建
Gradle的靈活性和和豐富性允許你用通用的設計原則來構建項目。比如說,構建可重用的的邏輯塊的邏輯非常簡單。不要試圖去強迫拆散本應該在一起的東西,比如說是項目的層次結構。這樣可以避免項目太分散,因為分散的項目會導致你的構建過程變成一個噩夢!最后,你可以構建一個結構良好、易于維護、理解的構建過程。
(4)深度API
在構建執行的整個生命周期里,你可以嵌入很多的鉤子,Gradle允許你檢測和自定義配置和執行非常核心的行為。
(5)Gradle Scales
Gradle Scales 非常好,它可以增加你的生產力。從簡單的單項目到企業的多項目構建都可以。隨著功能的增加,它可以解決很多大型企業構建過程中的問題。
(6)多項目構建
Gradle對多項目構建的支持非常好,Gradle還提供了部分構建,如果你構建一個單項目,那么Gradle會構建整個項目的目錄,在多項目的構建中,你可以選擇構建部分項目,增量構建可以大大的節省你的時間。
(7)很多方式管理依賴
不同的團隊喜歡使用不同的方式來管理外部依賴,Gradle為所有的方式都提供了支持。你可以使用遠程的依賴管理庫,比如Maven和ivy或者是本地的文件系統。
(8)Gradle是第一個集成的構建工具
Ant的task是支持的,更有趣的事,Ant的project也是支持的。Gradle為Ant的項目提供了深度支持,在運行時可以把Ant的 targets轉換城本地的Gradle任務。你可以在Gradle中依賴或者是改進Ant,你甚至可以在Gradle的任務重宣布對build.xml 的依賴。Gradle支持現有的Maven倉庫和Ivy倉庫,Gradle還提供了將Maven的pom.xml轉換成Gradle腳本的工具。 Maven項目的運行時導入時代即將到來。
(9)容易遷移
Gradle可以適應你有的任何結構,因此你可以在項目運行的生產環境中進行項目構建,我們通常建議寫一個測試程序來保證項目正常運行,使用Gradle可以盡可能的減少項目遷移出現的問題,這也是進行項目重構的最佳實踐,也就是“baby steps”。
(10)Groovy
Gradle使用Grovvy來寫腳本,而不是XML,這是因為Groovy比XML的可讀性更好。Gradle的設計并不是要提供一個嚴格的框架。 Gradle提供了一些標準,但是并不是不能修改的。這是Gradle和其他聲明性構建系統的區別和特色。Groovy不僅僅是糖衣,添加Groovy得到了一個愉快和富有成效的經驗。
(11)Gradle Wrapper
Gradle Wrapper 允許你在沒有安裝Gradle的機器上運行Gradle腳本,在一些持續性的集成服務器上是非常有用的。
(12)免費開源
Gradle是開源項目,并且采用是ASL協議授權。
2.2為什么采用Groovy?
我們認為領域特定語言(基于動態語言)相對于XML在構建腳本方面是優勢巨大的。有很多動態語言,為什么選擇Groovy呢?原因在與進款gradle是一個通用的構建工具,但是主要工作核心還是Java項目。在這樣的項目組里面,每個人都是熟悉Java的,所以我們希望對所有成員都能夠足夠透明。
在這種情況下,你可能會問我們為什么不直接使用java作為構建腳本語言呢?這是因為雖然Java很強大,但是也有局限性,在這種需求下不如 Python、Groovy、Ruby強大,Java太復雜了。而Groovy即有和Java相同的基礎,也有它自己的特點。
對于Java開發人員與Python或Ruby知識或學習的欲望,上述論點并不適用。它的設計非常適合在JRuby創建另一個構建腳本引擎或Jython。只是沒有我們的最高優先級。我們非常支持任何社區去努力創建額外的構建腳本引擎。
轉載請注明出處:http://blog.csdn.net/zhaokaiqiang1992