雖然兩者都是項目工具,但是maven現在已經是行業標準,Gradle是后起之秀,很多人對他的了解都是從android studio中得到的,Gradle拋棄了Maven的基于XML的繁瑣配置,眾所周知XML的閱讀體驗比較差,對于機器來說雖然容易識別,但畢竟是由人去維護的。取而代之的是Gradle采用了領域特定語言Groovy的配置,大大簡化了構建代碼的行數,比如在Maven中你要引入一個依賴:
然后我將其轉換成Gradle腳本,結果是驚人的:
dependencies {
compile('org.springframework:spring-core:2.5.6')
compile('org.springframework:spring-beans:2.5.6')
compile('org.springframework:spring-context:2.5.6')
compile('com.google.code.kaptcha:kaptcha:2.3:jdk15')
testCompile('junit:junit:4.7')
}
注意配置從原來的28行縮減至7行!這還不算我省略的一些父POM配置。依賴的groupId、artifactId、 version,scope甚至是classfier,一點都不少。較之于Maven或者Ant的XML配置腳本,Gradle使用的Grovvy腳本殺傷力太大了,愛美之心,人皆有之,相比于七旬老婦松松垮垮的皺紋,大家肯定都喜歡少女緊致的臉蛋,XML就是那老婦的皺紋。
Gradle給我最大的有點是兩點。其一是簡潔,基于Groovy的緊湊腳本實在讓人愛不釋手,在表述意圖方面也沒有什么不清晰的地方。其二是靈活,各種在Maven中難以下手的事情,在Gradle就是小菜一碟,比如修改現有的構建生命周期,幾行配置就完成了,同樣的事情,在Maven中你必須編寫一個插件,那對于一個剛入門的用戶來說,沒個一兩天幾乎是不可能完成的任務。