2015-10-19 56 views
6

有很多關於的解答如何在中使用Maven在Android中使用它。Android Studio中的Maven是什麼?

然而,作爲Gradle是已經上市,它管理的Android項目的構建過程,並支持複雜的場景中創建Android應用程序,如Multi-distributionMulti-apk

什麼究竟Maven作用在Android Studio中?

如何它不同於Gradle

回答

7

簡短的回答是:工具以不同的方式做同樣的事情。不同之處在於您如何使用它來構建您的項目。 Apache Maven遵循「遵循我們的約定」的方式,Gradle爲您提供了靈活性。有些開發人員不希望有新的工具,或者沒有時間學習如何正確使用它。

現在長的答案...

要正確理解爲什麼有些開發者連接到Apache Maven的,我們來看看一些年過去。

Apache Maven是一個構建自動化工具,就像Gradle一樣。

Maven於2004年發佈。Gradle第一個版本在2007年推出,但他在早期沒有像Maven那樣受歡迎。有些開發人員不喜歡學習新東西,大多數公司不希望冒險爲已經運行並掌握的工具(Maven)交換該塊新孩子的風險。

當Android開發上升時,Gr​​adle開始流行起來。 Android的項目與Java EE/Web項目有不同的項目結構。試圖在Android項目中使用Maven只是感覺不自然,該工具沒有準備好提供靈活性。

到目前爲止,如果您已經知道強制約定,那麼Apache Maven可以在簡單的Java EE項目中使用,而不會對屁股造成痛苦。因此,不瞭解Gradle /的開發人員並未與Android應用程序取得聯繫,因此他們沒有動力去改變其他工具。

在我看來,Gradle比你想象中的任何一種方式都好,比Apache Maven更好。它爲您提供了靈活性,並盡力避免陷入困境,這是您在Apache Maven找不到的「功能」。如果你不遵循Apache Maven生命週期,你的構建會失敗,就是這樣。

例如,如果您使用的是Gradle,則您的代碼可以以任何佈局分佈在多個目錄中。如果您使用的是Maven,並且您不遵循「慣例」,則會因爲能夠理解和處理文件夾結構而損失幾個小時來更改您的pom文件(Maven的構建文件)。

例如:Java源代碼必須位於src/main/java文件夾中。如果你有一箇舊項目,結構是src/java,對不起,你不能保證所有的Maven插件都能按預期運行。

Gradle幫助我們,並在非常有組織的圖表中放置更多功能進行比較。看一看。 https://gradle.org/maven_vs_gradle/