Gradle 入門使用(1)


 

本文同步發表在 http://www.simonme.org/?p=201

一、介紹

1. Gradle 是什么 Gradle 官方對其描述是:能自動構建、測試、部署、打包、生成靜態頁面,生成文檔等等。Gradle整合了Ant對依賴管理的強大能力、靈活和maven的約定的優於配置的特性形成了一種更有效的構建方式。Gradle基於Groovy的領域定義語言,充滿了創新。Gradle已經成為很多開源項目的編譯系統的選擇。

2. Gradle的特性 詳細的參見其文檔

a. 通過聲明來構建和通過約定來構建。

b. 基於編程來描述語言依賴。

c. 構建描述結構化。(使得你的構建代碼更優雅,更清晰,更易復用)。

d. Deep API(提供很多hooks,允許你在構建的任何環節做監控和定制配置。)。

e. Gradle scales. f. 多工程構建。

g. 多種方式管理你的依賴(可以和maven和ivy倉庫直接對接)...

 

二、Eclipse 安裝Gradle插件(強烈建議全程fan/qiang)

1. 訪問 http://dist.springsource.com/release/TOOLS/composite/e3.7/bookmarks.xml (可能要fan/qiang. 還有這個網址中的3.7是個變量,根據你的eclipse版本來確定。)。將這個xml文件保存到到本地.

2.然后按下圖操作。 步驟5是 http://dist.springsource.com/release/TOOLS/gradle 

 

然后一路next。

3. 安裝后的配置 安裝完以后, 是可以喝maven的插件一樣,可以指定gradle裝在哪里,還是使用插件自帶的gradle warpper。看你自己需要。我用的默認自帶的。(maven是建議指向自己安裝的)

三、Gradle構建腳本基礎

1. 基礎安裝 a. 需要JDK1.5+。具體步驟即是下載zip包,解壓即可用。根據需要決定是否設置GRADLE_HOME環境變量和GRADLE_HOME/bin 目錄是否加入系統PATH。 b. JVM參數配置。對於Gradle來說,配置JVM參數,可以通過GRADLE_OPTS和JAVA_OPTS來配置,諸如HTTP Proxy。也可以在gradle腳本的開頭處設置。

2. Eclipse的gradle插件使用 若在不聯網的情況下,用eclipse的gradle的插件創建gradle工程會失敗。 錯誤信息如下: java.net.UnknownHostException: services.gradle.org at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at sun.net.NetworkClient.doConnect(Unknown Sourc

3. Gradle腳本基礎

a. Everything in Gradle sits on top of two basic concepts: projects and tasks. Every Gradle build is made up of one or more projects. gradle中有兩個重要概念,project和task。每一個gradle構建腳本都有多個project構成。一個project代表着你要構建的軟件的一些部件。諸你要構建的要依賴外部什么。一個project可能代表一個jar lib,或者是一個web app。一個project也可能代表一個由多個工程build出來的多個jar包組裝好的zip包。一個project並不一定代表要構建,也或許是去做一些事情,比如將你的應用發布到演示或者生產環境上。

b. 每一個project也是由多個task構成的。一個task代表一些原子的構建執行的工作片段。比如編譯classes,創建jar,生成javadoc,發布一些壓縮包到倉庫。

下面就會涉及到Groovy的語法 具體的可以參見本博客另外一篇文章Groovy簡明學習

c. Hello World 創建一個build.gradle,寫上如下代碼:  

task hello { doLast { println 'Hello World!' } }   

gradle的 -b選項 表示指定編譯腳本文件. 上面的腳本略作解釋,定義了一個hello task,然后執行之。這個task等同於ant的target,但是gradle的task具有更強大的特性。

d. 更快捷的任務定義。

task hello << { println 'Hello world!' }

e. 字符串方法使用

task upper << { String someString = 'mY_nAmE' println "Original: " + someString println "Upper case: " + someString.toUpperCase() }  

f. 迭代次數 task count << { 4.times { print "$it " } }    

g. 任務依賴 task hello << { println 'Hello world!' }   task intro(dependsOn: hello) << { println "I'm Gradle" }  

h. 動態任務 4.times { counter -> task "task$counter" << { println "I'm task number $counter" } }

未完,待寫  

i. 操作已經存在的任務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM