【Gradle用戶指南】Gradle特點介紹

jopen 10年前發布 | 45K 次閱讀 Gradle Groovy Java開發

本篇文章翻譯自《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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!