自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Gradle大戰(zhàn)Maven,勝負(fù)已分?

開發(fā) 開發(fā)工具
Maven和Gradle都屬于“構(gòu)建工具”,都是用來自動(dòng)化工作,并把我們的源碼編譯成我們要發(fā)布的構(gòu)件而存在。

"I can’t understand why people are frightened of new ideas. I’m frightened of the old ones." — John Cage"我不明白為什么人們害怕新想法。 我害怕那些舊的。" - 約翰凱奇。

勇敢邁出舒適區(qū),去冒險(xiǎn)吧!

Gradle漸漸地火了起來,但是大部分人還在使用Maven,本文將對(duì)Gradle和Maven進(jìn)行全面的比較,大家可以據(jù)此作為選型比較的依據(jù)。

Maven和Gradle都屬于“構(gòu)建工具”,都是用來自動(dòng)化工作,并把我們的源碼編譯成我們要發(fā)布的構(gòu)件而存在。

歷史

maven初始版本誕生于2004年,Gradle誕生于2008年,Maven誕生時(shí)間更早,但二者都擁有悠久的歷史,它們都擁有優(yōu)秀成熟的生態(tài)。

maven初始版本誕生于2004年

gradle初始版本誕生于2008年

性能

Gradle引入了 Maven中缺少的幾個(gè)性能優(yōu)化,以提高構(gòu)建性能。這也是Spring、Spring Boot源碼使用Gradle替換Maven的主要原因。

Gradle 構(gòu)建緩存在本地重用Gradle任務(wù)的輸出,并在機(jī)器之間共享任務(wù)輸出。 在許多情況下,這將加快平均構(gòu)建時(shí)間。

構(gòu)建緩存在分支之間切換時(shí)也非常有用,因?yàn)橄惹皹?gòu)建的輸出被保留并且不必重新創(chuàng)建。 性能節(jié)省與上面的緩存構(gòu)建相當(dāng),在測(cè)試項(xiàng)目中,Gradle 比 Maven 快 17 到 100 倍。

在小型的多項(xiàng)目編譯中,Gradle 在干凈構(gòu)建下速度快 2-3 倍,增量更改速度快 7 倍,緩存 Gradle任務(wù)輸出時(shí)速度快 14 倍。

gradle和maven速度比較

在中型的多項(xiàng)目編譯中,Gradle 在干凈構(gòu)建下速度快4-5 倍,增量更改速度快 40 倍,緩存 Gradle任務(wù)輸出時(shí)速度快 13 倍。

在大型大型單體式項(xiàng)目中,Gradle在干凈構(gòu)建下速度快 2-3 倍,增量更改速度快 7 倍,緩存Gradle任務(wù)輸出時(shí)速度快 3 倍。

代碼

Maven使用的是基于xml的pom.xml,Gradle使用基于Groovy語言的build.gradle。我們比較一下兩個(gè)相同功能的Spring Boot程序,分別使用Maven和Gradle的區(qū)別。

build.gradle和pom.xml代碼行數(shù)比較

由圖可以看出,相同情況下,build.gradle是33行代碼,pom.xml是69行代碼。當(dāng)然這主要的原因是xml本身就是一門很啰嗦的表意語言。也因此,用xml作為配置、協(xié)議也越來越少。

由圖也可以看出Gradle比Maven易讀性更強(qiáng)且更易維護(hù)!

功能

功能

Maven

Gradle

構(gòu)建

編譯Java應(yīng)用

用插件構(gòu)建其他語言

不用插件構(gòu)建其他語言

性能

并行編譯

增量構(gòu)建

增量編譯

作為守護(hù)進(jìn)程在后臺(tái)運(yùn)行

可用性

無需安裝

動(dòng)態(tài)控制臺(tái)

定制

支持多模塊

支持第三方插件

支持自定義插件

支持動(dòng)態(tài)構(gòu)建邏輯

從表中可以看出,Gradle的功能是比Maven要更豐富的。

流行度

從各類統(tǒng)計(jì)數(shù)據(jù)來看,Maven使用的流行度、市場(chǎng)占有率是有絕對(duì)的領(lǐng)先優(yōu)勢(shì)的。但是這也不能說明太多的問題,當(dāng)年的ie、xp系統(tǒng)、諾基亞手機(jī)也都是市場(chǎng)的霸主。

個(gè)別的統(tǒng)計(jì)有顯示Gradle有領(lǐng)先的結(jié)果,但這不能說明Gradle真正領(lǐng)先。如由OpenLogic發(fā)布的《2022年度開源報(bào)告顯示》:

結(jié)論

由上述比較,我們發(fā)現(xiàn)Gradle有明顯于Maven的優(yōu)勢(shì)。我提出下面的建議:

1、新項(xiàng)目嘗試使用Gradle來構(gòu)建!

2、嘗試遷移Maven的老項(xiàng)目將其使用Gradle構(gòu)建。(如:??Spring/Spring Boot編譯工具從Maven遷移到了Gradle「官網(wǎng)翻譯」??)

不愿遷移的理由很多:

1、對(duì)于Maven很熟悉了,不用遷移到新的工具!

2、又要學(xué)習(xí)一個(gè)新東西,卷不動(dòng)了!

我覺得無論作為什么樣的職業(yè),對(duì)新的東西要保持敏銳的感知和學(xué)習(xí),不要停留在自己舒適的區(qū)域,無論Gradle有沒有那么優(yōu)秀,或者有沒有那么多問題,我們要堅(jiān)持嘗試一下。

最后送給大家一句話:

"I can’t understand why people are frightened of new ideas. I’m frightened of the old ones." — John Cage"我不明白為什么人們害怕新想法。 我害怕那些舊的。" - 約翰凱奇。

勇敢邁出舒適區(qū),去冒險(xiǎn)吧!

文章出自:??愛科學(xué)的衛(wèi)斯理??,如有轉(zhuǎn)載本文請(qǐng)聯(lián)系愛科學(xué)的衛(wèi)斯理今日頭條號(hào)。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2019-01-15 13:06:24

支付寶微信支付銀聯(lián)

2013-08-01 13:41:16

HTML5App

2024-08-30 08:51:17

MavenGradleJava

2015-01-26 09:57:47

GradleMaven Centr

2022-12-05 08:55:39

MavenGradle項(xiàng)目

2022-09-01 11:48:45

JavaScript框架

2023-10-07 14:15:03

軟件開發(fā)GradleMaven

2012-09-07 10:09:54

MySQLMongoDB云計(jì)算

2025-03-26 01:00:00

2020-06-30 14:25:28

MavenGradle Spring

2017-02-27 08:37:01

2020-06-23 16:05:07

GradleMavenJava

2016-02-24 10:45:00

2022-11-01 08:55:55

編譯工具MavenSpring

2017-06-09 11:20:47

高考AI教育

2022-01-17 07:50:36

Maven Gradle 工具

2013-02-21 13:18:32

2013-09-09 18:21:14

2011-12-05 09:46:34

IDC云計(jì)算移動(dòng)

2014-06-05 15:26:42

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)