從 Maven 到 Gradle

by 03:08:00 0 comments

Maven 在 Java 世界內歷史很久,可以說是一種標準了。但基於 Groovy 這 Script Language 的 Gradle 出來後身邊愈來愈多人/案子開始用 Gradle 而不是 Maven, 所以這次想寫寫從 Maven 到 Gradle 的感受。

懶惰

Groovy 本來就是一種很好理解,也很方便使用的 Script Lanuage 所以在 Gradle 身上也繼承了它的優點,我們先看看一個比較:


上面是 Gradle 的 Dependencies 下面是 Maven 的,可以發現差不多的設定雖從56行精簡到13行,對於懶惰的我真的是很方便。而且它還可以寫成
compile("org.slf4j:slf4j-api:1.7.+")
這樣它就會自動抓 1.7.x 的版本,類似的還有 last.release 之類的想知道詳細用法可以看看官方文件或留言問我噢 ~

跟 Maven 相容 

這也是很重要的一點,在 Gradle 的設定中我們可以發現


這樣的東西,表示 Gradle 是可以直接使用 Maven 的 Repositories 來載 Library。這樣放在公司私人 Nexus Server 或自己平常用的 Maven Library 通通都可以無痛拉到 Gradle 用 :目

另外很多 Maven 人困惑的問題是,我用 Gradle 做出來的東西可不可以上載到 Maven Repo 給其他人用?

答案是完全可以的,只需面加個 maven plugin 跟設定上載的 gradle task 就可以了,像這樣 :

自訂 Task  

在 Gradle 我們可以把一些日常會做的事變成一個 Gradle Task,Gradle 也提供很具彈性的語法來讓我們去做不同的變態事情 XD。

這邊是一小段 A 回來的 Code, 它的用途是 build 的時候會把 war 檔 deploy 到測試服務器運行 ( 懶惰 +1)

而且也直接兼容 Apache Ant 的,但我沒在用這東西所以沒辦法寫太詳細關於這 Part XD

總結

Gradle 很有潛力,也許未來會是一個趨勢去慢慢代換 Maven 的工具,他除了上面幾提到的還有很多很多用發像可以接照 Build (Testing, Production, Release) 的類形去讀不同的設定檔這樣,自動產生 Java 文檔再上傳到伺服器給同事看, etc... ( 又可以更懶惰了 誤 ) 我也在慢慢去發
掘不同的用發 XD 所以大家也可以投放時間玩玩看一齊學習 ~


0 comments:

Post a Comment