日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gradle和maven区别

發(fā)布時(shí)間:2025/3/11 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gradle和maven区别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文連接:http://blog.csdn.net/jueane/article/details/50383431

---------------------------------------------

Gradle和Maven都是項(xiàng)目自動(dòng)構(gòu)建工具,編譯源代碼只是整個(gè)過程的一個(gè)方面,更重要的是,你要把你的軟件發(fā)布到生產(chǎn)環(huán)境中來產(chǎn)生商業(yè)價(jià)值,所以,你要運(yùn)行測試,構(gòu)建分布、分析代碼質(zhì)量、甚至為不同目標(biāo)環(huán)境提供不同版本,然后部署。整個(gè)過程進(jìn)行自動(dòng)化操作是很有必要的。

整個(gè)過程可以分成以下幾個(gè)步驟:

  • 編譯源代碼
  • 運(yùn)行單元測試和集成測試
  • 執(zhí)行靜態(tài)代碼分析、生成分析報(bào)告
  • 創(chuàng)建發(fā)布版本
  • 部署到目標(biāo)環(huán)境
  • 部署傳遞過程
  • 執(zhí)行冒煙測試和自動(dòng)功能測試
如果你手工去執(zhí)行每一個(gè)步驟無疑效率比較低而且容易出錯(cuò),有了自動(dòng)化構(gòu)建你只需要自定義你的構(gòu)建邏輯,剩下的事情交給工具去完成。

雖然兩者都是項(xiàng)目工具,但是maven現(xiàn)在已經(jīng)是行業(yè)標(biāo)準(zhǔn),Gradle是后起之秀,很多人對(duì)他的了解都是從android studio中得到的,Gradle拋棄了Maven的基于XML的繁瑣配置,眾所周知XML的閱讀體驗(yàn)比較差,對(duì)于機(jī)器來說雖然容易識(shí)別,但畢竟是由人去維護(hù)的。取而代之的是Gradle采用了領(lǐng)域特定語言Groovy的配置,大大簡化了構(gòu)建代碼的行數(shù),比如在Maven中你要引入一個(gè)依賴:
<properties><kaptcha.version>2.3</kaptcha.version></properties> <dependencies><dependency><groupId>com.google.code.kaptcha</groupId><artifactId>kaptcha</artifactId><version>${kaptcha.version}</version><classifier>jdk15</classifier></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId></dependency></dependencies>

然后我將其轉(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') } 注意配置從原來的28行縮減至7行!這還不算我省略的一些父POM配置。依賴的groupId、artifactId、 version,scope甚至是classfier,一點(diǎn)都不少。較之于Maven或者Ant的XML配置腳本,Gradle使用的Grovvy腳本殺傷力太大了,愛美之心,人皆有之,相比于七旬老婦松松垮垮的皺紋,大家肯定都喜歡少女緊致的臉蛋,XML就是那老婦的皺紋。

Gradle給我最大的有點(diǎn)是兩點(diǎn)。其一是簡潔,基于Groovy的緊湊腳本實(shí)在讓人愛不釋手,在表述意圖方面也沒有什么不清晰的地方。其二是靈活,各種在Maven中難以下手的事情,在Gradle就是小菜一碟,比如修改現(xiàn)有的構(gòu)建生命周期,幾行配置就完成了,同樣的事情,在Maven中你必須編寫一個(gè)插件,那對(duì)于一個(gè)剛?cè)腴T的用戶來說,沒個(gè)一兩天幾乎是不可能完成的任務(wù)。


總結(jié)

以上是生活随笔為你收集整理的gradle和maven区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。