1. 程式人生 > >Gradle&Maven&Ant 構建工具

Gradle&Maven&Ant 構建工具

什麼是Gradle?

Gradle就是一個構建工具,一個自動化的構建工具,一個基於Apache Ant和Apache Maven概念的專案自動化構建開源工具。

它使用一種基於Groovy的特定領域語言(DSL)來宣告專案設定,拋棄了基於XML的各種繁瑣配置。 面向Java應用為主。當前其支援的語言限於Java、Groovy、Kotlin和Scala,計劃未來將支援更多的語言。

關於構建工具?

我們要寫一個Java程式,一般的步驟也就是編譯,測試,打包。這個構建的過程,如果檔案比較少,我們可以手動使用java, javac, jar命令去做這些事情。但當工程越來越大,檔案越來越多,這個事情就不是那麼地令人開心了。因為這些命令往往都是很機械的操作。但是我們可以把機械的東西交給機器去做。這便有了後來的構建工具…

關於Ant?

Ant (Another Neat Tool), 是一個基於Java的跨平臺構建工具。 Ant定義了五個任務,init, compile, build, test, clean。每個任務做什麼都定義清楚了。後面一個任務皆依賴前一個任務,執行任務前會先執行最初被依賴的物件。(比如:執行 ant test,它的執行順序是:init - compile - build - test) 缺點:無法管理依賴。 然而,我們一個專案會涉及到很多的工具,不同的工具和不同的版本;另外,每次打包都要自己手動去把正確的版本拷到lib下面,所以使用Ant 不僅很枯燥繁瑣,還很容易引起Jar包版本衝突問題。 所以,有了後來的Maven…

關於Maven?

Maven的原理便是提供了倉庫,我們可以將所有依賴的包放在庫中,在工程管理 pom.xml 檔案中根據 “三座標”(groupId, artifactId, version)標明我們需要的包。在構建的時候,Maven會自動把我們標明需要的包打包進當前專案中來。 Maven 構建工具的關鍵是配置setting.xml中的倉庫地址(包括:本地倉庫,或者映象倉庫,或者中央倉庫);以及,工程管理 pom.xml 檔案中的 依賴標明。 Maven裡拋棄了ant中通過target定義任務的做法,而是引入了生命週期的概念 缺點:(1)任務擴充套件困難,無法靈活地定義自己的任務。(2)Maven是使用xml進行配置的,語法不簡潔 所以,有了後來的最終Boss ---- Gradle構建工具,中和了Ant和Maven的優點和改善了兩者的缺點。