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

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

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

Labs 導(dǎo)讀

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

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

Part 01

介紹

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

使用GraalVM代替JVM

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

支持JIT

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

并行構(gòu)建

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

Part 02

簡單嘗試

- 安裝

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

圖片圖片

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

- 配置

配置很簡單,只需要注意幾點:

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

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

圖片圖片

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

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

- 驗證

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

圖片圖片

- 使用

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

  • maven構(gòu)建


圖片圖片

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


圖片圖片

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


圖片圖片

Part 03

總結(jié)

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

??參考文獻(xiàn)

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

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

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


責(zé)任編輯:龐桂玉 來源: 移動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:09:57

人工智能人臉識別

2023-07-02 16:34:06

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

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-09-17 17:51:43

Android 14

2023-08-06 07:00:59

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

2023-07-12 16:03:37

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

2023-08-06 06:55:29

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

2023-09-02 20:22:42

自動化測試軟件開發(fā)

2023-06-03 21:06:05

2023-06-03 21:14:47

Linux

2023-08-07 06:35:07

系統(tǒng)限流

2021-06-04 15:38:18

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

2021-09-18 11:36:38

混沌工程云原生故障
點贊
收藏

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