IT|軟體|開發|Gradle 專案建置自動化工具


簡介

Gradle 簡單說就是 Java 世界的 Makefile,它可以幫忙打理那些在專案開發過程中的瑣事,舉凡編譯、測試、檢查程式碼、產生文件、清理或壓縮檔案、上傳、發佈、重新啟動伺服器到送出電子郵件,都可以利用 Gradle 撰寫的 Script 來自動完成作業。

Java 建構工具 Ant、Maven vs Gradle 比較    2016年7月15日

[Ant] 
Ant的主要優點在於對構建過程的控制上;Ant是第一個「現代」構建工具,在很多方面它有些像Make。2000年發佈,在很短時間內成為Java項目上最流行的構建工具。它的學習曲線很緩,因此不需要什麼特殊的準備就能上手。它基於過程式編程的 idea。在最初的版本之後,逐漸具備了支持插件的功能。

主要的不足是用XML作為腳本編寫格式。 XML,本質上是層次化的,並不能很好地貼合 Ant 過程化編程的初衷。Ant的另外一個問題是,除非是很小的項目,否則它的 XML 文件很快就大得無法管理。後來,隨著通過網絡進行依賴管理成為必備功能,Ant 採用了Apache Ivy

[Maven]
Maven 發佈於2004年。目的是解決碼使用 Ant 所帶來的一些問題。因為 Maven 主要聚焦於依賴管理,實際上用 Maven 很難寫出複雜、定制化的構建腳本,甚至不如 Ant

Maven 的主要優點是生命週期。只要項目基於一定之規,它的整個生命週期都能夠輕鬆搞定,代價是犧牲了靈活性。

Maven 仍舊使用 XML 作為編寫構建配置的文件格式,但是,文件結構卻有巨大的變化。Ant 需要碼將執行 task 所需的全部命令都一一列出,然而 Maven 依靠約定(convention)並提供現成的可調用的目標(goal)。不僅如此,有可能最重要的一個補充是,Maven 具備從網絡上自動下載依賴的能力(Ant 後來通過 Ivy 也具備了這個功能),這一點革命性地改變了我們開發軟件的方式。

但是,Maven 也有它的問題。依賴管理不能很好地處理相同庫文件不同版本之間的衝突(Ivy 在這方面更好一些)。XML 作為配置文件的格式有嚴格的結構層次和標準,定制化目標(goal)很困難。
[Gradle]
Gradle 結合了前兩者的優點,在此基礎之上做了很多改進。它具有 Ant 的強大和靈活,又有 Maven 的生命週期管理且易於使用。最終結果就是一個工具在2012年華麗誕生並且很快地獲得了廣泛關注。例如,Google 採用 Gradle 作為 Android OS 的默認構建工具。

Gradle 不用 XML,它使用基於 Groovy 的專門的 DSL,從而使 Gradle 構建腳本變得比用 Ant 和 Maven 寫的要簡潔清晰。Gradle 樣板文件的代碼很少,這是因為它的 DSL 被設計用於解決特定的問題:貫穿軟件的生命週期,從編譯,到靜態檢查,到測試,直到打包和部署。

安裝及配置    2016年5月12日


將下載的檔案解壓縮到下面目錄(目錄名稱可自行帶換)
/Users/Kevin/Agile-MAC/Gradle
sudo nano /etc/.bashrc_profile

export
export GRADE_HOME=/Users/Kevin/Agile-MAC/Gradle/gradle-2.10

整合 Eclipse    2016年5月12日

開啟Eclipse專案選擇 Help -> Eclipse Marketplace..
搜尋條件選gradle按下 Install
重新啟動 eclipse
之後在目標專案上按右鍵選擇 Configure -> Conver to Gradle Project
接著在最外層的目錄下創造一個 build.gradle 的檔案
它的內容按照自己的需求來設定

[一個簡單的範例]
import org.gradle.plugins.ide.eclipse.model.Facet

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'eclipse-wtp'

sourceCompatibility = 1.7   // 設置 JDK 版本
webAppDirName = 'WebContent'    // 設置 WebApp 根目錄
sourceSets.main.java.srcDir 'src'   // 設置 Java 源碼所在目錄

// 設置 maven 庫地址
repositories {  
   mavenCentral()
}

// 設置依賴
dependencies {
   providedCompile 'javax.servlet:servlet-api:2.5' // 編譯期
   providedRuntime 'javax.servlet:jstl:1.2'    // 運行時
}

設定好了之後在專案上按右鍵,選擇 Gradle -> Refresh All
就會開始下載Lib, 等下載完就可以看到 Gradle Dependencies 內的檔案

完成!

資源

Spring 教學(1) - 從 Spring Boot 開始

留言

這個網誌中的熱門文章

IoT|硬體|樹莓派|外接麥克風及喇叭設置

成長|語文|學習-英文 持續更新!

IoT|硬體|通訊|Arduino 使用 SoftwareSerial Library 與電腦通訊