偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

五分鐘技術(shù)趣談 | mvnd:更快的maven來了

開發(fā)
相信作為Java開發(fā)者的你早已經(jīng)受夠了maven的編譯緩慢,但是又由于歷史包袱、使用習(xí)慣等問題暫時(shí)切換不了其他更快的構(gòu)建工具,這里介紹一款更快的Maven——maven-mvnd。

Labs 導(dǎo)讀

Maven和Gradle都是我們程序猿們?nèi)粘i_發(fā)必不可少的構(gòu)建工具,但兩者還是有很大的不同之處的:1.可擴(kuò)展性,Gradle比較靈活,maven的靈活性就差一些,但是maven的項(xiàng)目比較容易看懂,并且上手簡(jiǎn)單;2.性能比較,Gradle比maven運(yùn)行得快。Gradle無(wú)論是在可擴(kuò)展性還是在性能方面都優(yōu)于Maven。

相信作為Java開發(fā)者的你早已經(jīng)受夠了maven的編譯緩慢,但是又由于歷史包袱、使用習(xí)慣等問題暫時(shí)切換不了其他更快的構(gòu)建工具,這里介紹一款更快的Maven——maven-mvnd[1]。

Part 01

介紹

mvnd并不是對(duì)Maven進(jìn)行了重構(gòu),而是內(nèi)置了Maven。它實(shí)際上是一個(gè)或者多個(gè)Maven守護(hù)進(jìn)程,用來執(zhí)行實(shí)際的構(gòu)建服務(wù)。一個(gè)守護(hù)進(jìn)程實(shí)例可以為來自mvnd客戶端的多個(gè)連續(xù)請(qǐng)求提供Maven構(gòu)建服務(wù)。當(dāng)沒有空閑的守護(hù)進(jìn)程時(shí)來支撐構(gòu)建請(qǐng)求時(shí),mvnd可以并行生成多個(gè)守護(hù)程序。

使用GraalVM代替JVM

mvnd之所以快是因?yàn)樗褂昧薌raalVM替代了傳統(tǒng)的JVM,因此它啟動(dòng)更快,占用內(nèi)存更少,而且在實(shí)行構(gòu)建時(shí)不需要為每個(gè)構(gòu)建啟動(dòng)新的JVM。另外Maven插件在構(gòu)建時(shí)不再需要多次加載,而是緩存在多個(gè)構(gòu)建中。SNAPSHOT版本的Maven插件不會(huì)被緩存。

支持JIT

GraalVM的JIT(Just In Time)實(shí)時(shí)編譯特性也被運(yùn)用到Maven構(gòu)建作業(yè)中。JIT可以大大降低編譯時(shí)間,在重復(fù)構(gòu)建過程中,JIT優(yōu)化代碼立即可用,也極大提高了構(gòu)建效率。

并行構(gòu)建

目前Maven 3的并行構(gòu)建(parallel builds)還是實(shí)驗(yàn)特性,而且要求使用的插件必須是線程安全的。而mvnd默認(rèn)就支持使用多個(gè)CPU內(nèi)核進(jìn)行并行構(gòu)建。當(dāng)然如果你的源代碼不支持并行構(gòu)建,也可以通過添加- T1參數(shù)切換到串行構(gòu)建。

Part 02

簡(jiǎn)單嘗試

- 安裝

目前mvnd已經(jīng)支持Linux、MacOS、Windows平臺(tái)。你可以分別通過SDKMAN、Homebrew、Chocolatey這些包管理器進(jìn)行安裝。也可以直接去mvnd發(fā)行版?zhèn)}庫(kù)[2]下載對(duì)應(yīng)的二進(jìn)制進(jìn)行安裝。這里以Windows為例,小編選擇 從mvnd發(fā)行版?zhèn)}庫(kù)[2]下載壓縮包,如下圖所示:

圖片圖片

選擇下載 maven-mvnd-1.0-m6-m40-windows-amd64.zip版本。

- 配置

配置很簡(jiǎn)單,只需要注意幾點(diǎn):

如果不使用包管理器進(jìn)行安裝的話請(qǐng)確保mvnd的bin目錄關(guān)聯(lián)到PATH。

解壓后修改配置文件,修改conf/mvnd.properties。拉到底部修改settings文件目錄,可以指向原安裝maven中的xml文件,也可單獨(dú)放到一個(gè)目錄中。

圖片圖片

如果沒有配置或者不想配置JAVA_HOME環(huán)境變量的話請(qǐng)?jiān)趡/.m2/mvnd.properties中設(shè)置java.home以指定Java目錄,例如:java.home=C:\\AdoptOpenJDK\\jdk-8。已經(jīng)配置環(huán)境變量的請(qǐng)忽略該條。

其他配置可參考mvnd配置[3]。

- 驗(yàn)證

環(huán)境變量配置完成,在cmd的任意地址,可以識(shí)別到bin下的 mvnd 命令輸入mvnd -version查看版本信息,輸出如下信息代表安裝成功!

圖片圖片

- 使用

在使用上與Maven的用法是完全相同的,只需將命令mvn改為mvnd即可。而在筆者本機(jī)的實(shí)測(cè)中,與傳統(tǒng)的Maven相比,通過mvnd的構(gòu)建所耗費(fèi)的時(shí)間大約是原來的1/2。

  • maven構(gòu)建


圖片圖片

  • mvnd構(gòu)建(并行)


圖片圖片

  • mvnd構(gòu)建(串行)


圖片圖片

Part 03

總結(jié)

由于GraalVM的加持,這個(gè)工具很可能會(huì)延長(zhǎng)Maven的生命,避免過早被Gradle拉開優(yōu)勢(shì)。對(duì)于我們來說,這個(gè)項(xiàng)目可以觀望一下,看看Apache Maven官方的進(jìn)一步動(dòng)作。

??參考文獻(xiàn)

[1] maven-mvnd: https://github.com/apache/maven-mvnd.

[2] mvnd發(fā)行版?zhèn)}庫(kù): https://github.com/mvndaemon/mvnd/releases.

[3] mvnd配置: https://github.com/mvndaemon/mvnd/blob/master/dist/src/main/distro/conf/mvnd.properties.


責(zé)任編輯:龐桂玉 來源: 移動(dòng)Labs
相關(guān)推薦

2023-07-23 18:47:59

Docker開源

2023-07-16 18:49:42

HTTP網(wǎng)絡(luò)

2023-04-15 20:25:23

微前端

2023-07-02 16:34:06

GPU虛擬化深度學(xué)習(xí)

2023-07-02 16:09:57

人工智能人臉識(shí)別

2023-07-12 15:50:29

機(jī)器學(xué)習(xí)人工智能

2023-09-12 07:10:13

Nacos架構(gòu)

2023-08-15 14:46:03

2023-07-31 08:55:15

AI技術(shù)網(wǎng)絡(luò)暴力

2024-12-18 14:10:33

2023-07-12 16:03:37

Android開發(fā)架構(gòu)

2023-09-17 17:51:43

Android 14

2023-08-06 07:00:59

Openstack網(wǎng)絡(luò)

2023-08-06 06:55:29

數(shù)字可視化物聯(lián)網(wǎng)

2023-07-12 16:13:01

2023-09-02 20:22:42

自動(dòng)化測(cè)試軟件開發(fā)

2023-08-07 06:35:07

系統(tǒng)限流

2023-04-15 20:33:35

圖形數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)

2021-06-04 15:38:18

聯(lián)邦學(xué)習(xí)人工智能數(shù)據(jù)

2021-09-18 11:36:38

混沌工程云原生故障
點(diǎn)贊
收藏

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