構建Gradle範例項目之Gradle包裝器

你作好web應用的原型,向你的同事展現,他們說想要加入你的開發團隊,給你的應用添加更多的高級特性讓它更上一層。代碼已經被提交到版本控制系統中,因此他們把代碼下載下來就能夠開始工做了。web

有同事歷來沒有使用過Gradle,因此他詢問你怎麼在機器上安裝Gradle運行時和用什麼版本。由於他沒有安裝過Gradle,因此他也關心在window上安裝和在Mac上安裝有什麼不一樣。根據使用其餘構建工具的經驗,這同事意識到若是選錯構建工具的版本或者運行時環境可能對構建結果帶來很差的影響。在本機上運行成功,可是在別的機器上運行失敗,實在太日常了。在煎熬了好幾個小時後,他發現緣由是運行時版本不兼容。shell

針對這個問題,Gradle提供了一個很是方便和實用的解決方案Gradle包裝器它是Gradle的核心特性,可以讓機器在沒有安裝Gradle運行時的狀況下運行Gradle構建。它也讓構建腳本運行在一個指定的Gradle版本上。它是經過自動從中心倉庫下載Gradle運行時,解壓和使用來實現的。最終的目標是創造一個獨立於系統,系統配置和Gradle版本的可靠和可重複的構建。安全

:何時用包裝器?使用包裝器被認爲是最佳實踐,對每個Gradle項目都是必需的。由包裝器支持的Gradle腳本很是適合做爲自動化發佈過程的一部分,好比持續集成和交付。服務器

配置包裝器app

在項目中配置包裝器,你只須要作兩件事情:建立一個包裝器任務執行任務生成包裝器文件。爲了可以讓項目能夠下載壓縮過的Gradle運行時文件,定義一個類型爲 Wrapper 的任務,經過gradleVersion屬性指定你想要使用的Gradle版本:工具

task wrapper(type: Wrapper){
    gradleVersion = '1.7'
}

不要求該任務的名字爲wrapper——任何名字均可以。然而,wrapper這個名字一般在Gradle的在線文檔中使用,而且做爲默認約定。執行任務:gradle

$ gradle wrapper

結果是,你會發現包裝器文件在構建腳本的旁邊。記住,你只須要在項目中運行一次 gradle wrapper 命令。從那時開始,你就能夠用包裝器的腳本執行構建了。下載下來的包裝器文件應該提交到版本控制系統中。爲了記錄構建使用過包裝器,將wrapper任務保留在項目中也是有用的。經過改變gradleVersion的值和從新運行wrapper任務,它會幫助你升級包裝器的版本。spa

使用包裝器操作系統

做爲包裝器發佈內容的一部分,它提供了一個命令執行腳本。對於*nix系統,它是一個叫做 gradlew 的shell腳本;對於window操做系統,它是gradlew.bat。示例:版本控制

$ gradlew jettyRun

定製包裝器

某些企業有很是嚴格的安全策略,特別是當你爲政府機構工做時,訪問外網是禁止的。在這種狀況下,如何讓你的項目使用Gradle包裝器呢?從新配置。你能夠改變默認配置,將它指向一個存有運行時發佈文件的企業內部服務器。同時你還能夠改變本地的存儲路徑

task wrapper(type:Wrapper) {
    gradleVersion = '1.2'        //Gradle版本號
    distributionUrl = ' //獲取Gradle包裝器的URL 
    distributionPath = 'gradle-dists'  //包裝器被解壓縮後存放的相對路徑
}

包裝器還有不少可用的選項,你能夠在Gradle包裝器的DSL文檔。

相關文章
相關標籤/搜索