雖然兩者都是項(xiàng)目工具,但是maven現(xiàn)在已經(jīng)是行業(yè)標(biāo)準(zhǔn)播聪,Gradle是后起之秀癣猾,很多人對(duì)他的了解都是從android studio中得到的慕蔚,Gradle拋棄了Maven的基于XML的繁瑣配置彼绷,眾所周知XML的閱讀體驗(yàn)比較差,對(duì)于機(jī)器來(lái)說(shuō)雖然容易識(shí)別茴迁,但畢竟是由人去維護(hù)的寄悯。取而代之的是Gradle采用了領(lǐng)域特定語(yǔ)言Groovy的配置,大大簡(jiǎn)化了構(gòu)建代碼的行數(shù)堕义,比如在Maven中你要引入一個(gè)依賴:
然后我將其轉(zhuǎn)換成Gradle腳本猜旬,結(jié)果是驚人的:
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')
}
注意配置從原來(lái)的28行縮減至7行!這還不算我省略的一些父POM配置倦卖。依賴的groupId洒擦、artifactId、 version怕膛,scope甚至是classfier熟嫩,一點(diǎn)都不少。較之于Maven或者Ant的XML配置腳本褐捻,Gradle使用的Grovvy腳本殺傷力太大了掸茅,愛(ài)美之心椅邓,人皆有之,相比于七旬老婦松松垮垮的皺紋昧狮,大家肯定都喜歡少女緊致的臉蛋景馁,XML就是那老婦的皺紋。
Gradle給我最大的有點(diǎn)是兩點(diǎn)逗鸣。其一是簡(jiǎn)潔合住,基于Groovy的緊湊腳本實(shí)在讓人愛(ài)不釋手,在表述意圖方面也沒(méi)有什么不清晰的地方撒璧。其二是靈活透葛,各種在Maven中難以下手的事情,在Gradle就是小菜一碟沪悲,比如修改現(xiàn)有的構(gòu)建生命周期获洲,幾行配置就完成了,同樣的事情殿如,在Maven中你必須編寫一個(gè)插件贡珊,那對(duì)于一個(gè)剛?cè)腴T的用戶來(lái)說(shuō),沒(méi)個(gè)一兩天幾乎是不可能完成的任務(wù)涉馁。