Gradle 是以 Groovy 語言為基礎開發的專案自動化(project automation)工具,它可以用簡單的 Groovy DSL 語法,將 Java 軟體開發過程中需要的編譯、建置、測試、打包及佈署工作,變成簡單、方便重複使用的 build.gradle 檔案。
Gradle 的功能類似 Ant (使用 build.xml 設定檔),但使用更簡單方便,它可以直接撰寫 Groovy 程式碼,因此彈性更大、功能更強也便於擴充。Gradle 使用 Apache Ivy 管理相依套件,並可以使用 Maven repository 作為套件來源,這將大幅減少 Java 專案惱人的相依套件問題。
舉例來說,當 a-1.0.jar 需要依賴 b-1.1.jar 及 c-1.1.jar 才能運作,使用到 a 的專案,就必須另外下載 b / c 的 jar 檔到 CLASSPATH 下,否則 a 套件的類別可能跑到一半就爆炸了。
傳統的 Java EE 開發者會建立一個 lib 資料夾,並把所有依賴的套件都往裡面丟。這造成很多問題,套件根本難以維護、升級,需要瑣碎的人工作業(工人智慧)才能管理。如果專案一多,發行的版本一多,真的需要多聘請一位「套件關係工程師」才能解決大家的困擾。
雖然 Apache Ant 可以簡化專案建置的流程,但是沒辦法處理套件相依問題。所以有了 Apache Ivy ,以及出現可以取代 Ant 、更有智慧的 Maven 工具。
Maven 提供許多 repository ,也就是大家常用、開源的套件,都有社群維護的設定檔,放在一些開放的主機提供下載,類似 Debian/Ubuntu 的 apt 或 Fedora / CentOS 的 yum 套件管理。在 mvnrepository 網站,可以搜尋你需要的套件是否有 repository 可用。
實際將 Ant / Ivy / Maven 運用在專案的開發者,應該都體驗過 Java 的苦難(設定複雜、瑣碎、麻煩),因此,如果你想要繼續用 Java 開發軟體,而且希望用更敏捷的方式,當個快樂的程式設計師,就需要學會使用 Gradle 工具。
Gradle 基於 Groovy 簡潔、易學易寫的特性,設計出專案自動化所需要的 DSL(領域描述語言),並且將 Ant / Ivy / Maven 的好處都整合起來。
Gradle - a build automation DSL
Gradle 的語法就是 Groovy,因此 build.gradle 可以簡單到只有一行印出訊息:
println 'hello gradle'
過去使用 Ant 進行刪除檔案的動作,必須記得 XML 指令長什麼樣子,但使用 Gradle 就相當直覺:
delete 'foo', 'bar', 'bazz'
麻煩的套件相依管理對 Gradle 來說非常簡單,例如,你的專案需要用到 MySQL (ConnectorJ),只需要加入一行程式碼設定 group、name、version。
dependencies {
runtime group: 'mysql', name: 'mysql-connector-java', version: '5.1.6'
}
安裝 Gradle 1.0 milestone X (gradle-tomcat-plugin 需要使用 1.0 以上版本)
MacPort
sudo port install gradle-devel
Ubuntu (11.10)
sudo apt-get install gradle
其他作業系統必須自行下載安裝: http://www.gradle.org/downloads
接下來,可以閱讀 Gradle 官方提供的免費 Cookbook:
http://wiki.gradle.org/display/GRADLE/Cookbook
訂閱:
張貼留言 (Atom)
-
▼
2011
(197)
-
▼
10月
(20)
- 用 gist 指令快速建立程式碼剪貼簿(code snippets)
- 敏捷 Java 開發之 Gradle 專案自動化工具介紹
- 創業×閱讀 (一) 創業首部曲
- Linux Journal 全面數位化 + 免費的九月號
- Universal Subtitles 讓世界各地的用戶幫影片打上字幕
- 再談數位出版,易讀網及便宜的電子書閱讀器 EZRead Touch
- 環保節能、待機時間超長的 Boogie Boar RIP 電子塗鴉板
- 用 Markdown 撰寫 Java 程式碼的說明文件
- 除了 JavaScript 你還可以用 Dart 開發 Web 前端!
- Safari + Pure Reader 讓 Google Reader 變美
- 消失的 Gnome 字型配置,Ubuntu 11.10 升級後的系統調校
- 消失的 gedit 色彩配置,Ubuntu 11.10 升級後的系統調校
- 最棒的免費作業系統 Ubuntu 11.10 正式發行
- 友情推廣:台灣電子書研究基地
- 使用 Octopress + GitHub 免費架設部落格,以 Markdown 語法快速發表文章
- SourceTree - 好用的 Git / Mercurial GUI 管理工具 for Mac ...
- Grails 2.0.0M 的 Spock Testing with Mock Domain Object
- 解決 Grails Maven 套件衝突問題
- Sublime Text 文字編輯軟體,支援 Linux、Mac OS X、Windows
- 在 Mac OS X 安裝 RabbitMQ / Erlang
-
▼
10月
(20)
您好,您一系列的 Gradle 介紹寫得很好,讓我想試試看 Gradle。我有使用過 Ant 的經驗,不過卻沒有使用過 Maven。想請教您一個問題:使用 Gradle 來建置專案,就我的理解,Gradle 可以至 maven 的 repository 下載專安需要的 dependencies 並存放在 cache 資料夾底下以作為之後建置專案之用。若是我使用 eclipse 來開發專案,想要有 auto-build 跟 auto-completion 的功能,那我是不是還是得另外下載專案所需要的 jar 並放置在 lib 資料夾底下呢?還是我得設定專案的 classpath 至特殊的位置?
回覆刪除您好,不必另外下載,我將相關使用方式整理在: http://blog.lyhdev.com/2011/12/java-gradle-eclipse.html
回覆刪除歡迎多交流討論!
看了這麼多篇您的介紹,唯獨漏了這一篇,感激不盡!
回覆刪除