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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

更快的Maven来了,我的天,速度提升了8倍!

發布時間:2025/3/11 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 更快的Maven来了,我的天,速度提升了8倍! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者 | 王磊

來源 | Java中文社群(ID:javacn666)

轉載請聯系授權(微信ID:GG_Stone)

周末被 maven-mvnd 刷屏了,于是我也下載了一個 mvnd 體驗了一把。雖然測試的數據都是基于我本地項目,不具備普適性和權威性,但也足以說明問題。它的測試結果遠遠超出我的預期,下面一起來看。

什么是 mvnd?

mvnd 是 Maven Daemon 的縮寫 ,翻譯成中文就是 Maven 守護進程。

mvnd 是 apache/maven 的一個子項目,它并不是一個全新的構建工具,而是對 maven 的擴展。它內置了 maven,其實現原理是構建了一個或者多個 maven 守護進程來執行構建服務。

mvnd 概述

1.mvnd 的目標是使用 Gradle 和 Takari 所知的技術提供更快的 Maven 構建。

Gradle 是一個基于 Apache Ant 和 Apache Maven 概念的項目自動化建構工具。Gradle 構建腳本使用的是 Groovy 或 Kotlin 的特定領域語言來編寫的,而不是傳統的 XML。Gradle 最大的優勢就是比傳統的 Maven 構建速度更快。Takari 是 maven-wrapper 核心,大部分的開源項目都是提供 warpper 方便用戶不安裝 maven 的前提下快速構建項目的。

2.mvnd 內嵌了 Maven,所以不需要單獨安裝 Maven 了。

3.一個守護進程實例可以服務于來自 mvnd 客戶端的多個連續請求。?

4.mvnd 客戶端使用 GraalVM 構建本地可執行文件,與啟動傳統 JVM 相比,它啟動得更快,占用的內存更少。?

5.如果 mvnd 沒有空閑守護進程來服務一個構建請求,可以并行地生成多個守護進程。

mvnd 優點介紹

mvnd 具有以下優點:

  • 用于運行構建的 JVM 不需要每次構建都重新啟動。

  • 持有 Maven 插件類的類加載器在多個構建中會被緩存。因此,插件 jar 文件只被讀取和解析一次。(快照版本的 Maven 插件不會被緩存)

  • JVM 中即時(JIT)編譯器生成的本地代碼也被保留,與常規 Maven 相比,JIT 編譯所花費的時間更少。在重復構建期間,JIT 優化的代碼立即可用,這不僅適用于來自 Maven 插件和 Maven Core的代碼,也適用于所有來自 JDK 本身的代碼。

  • mvnd 安裝

    mvnd 支持 Window、Linux、Macos,本文以 Windows 安裝為例。

    1.下載并解壓 mvnd

    下載地址:https://github.com/apache/maven-mvnd/releases選擇最新版的 Windows 資源包,如下圖所示:

    下載完成之后,解壓到本地的某個目錄,如下圖所示:

    2.配置環境變量

    將 mvnd 解碼包的執行目錄 bin 配置到系統變量 path 中,操作步驟如下圖所示:

    3.測試 mvnd 安裝

    接下來打開命令行窗口,使用“mvnd -version”檢查一下 mvnd 是否正常安裝成功,如下圖所示:如果打印了相關的版本信息就說明安裝成功了。

    mvn VS mvnd 性能測試

    接下來就是本文的重頭戲了,使用我本地的一個項目來測試一下 mvn 和 mvnd 的性能差距。

    我的電腦配置如下:

    1.mvn 性能測試

    傳統的 maven 執行結果如下圖所示:

    打包我本地的一個項目,跳過單元測試。

    mvn 性能測試結果:1.312 秒。

    2.mvnd 性能測試


    mvnd 性能測試結果 0.154 秒。

    總結

    本文介紹了 mvnd,一個內置了 maven 但執行效率遠比 maven 快很多的工具。它的上手難度很低,對于用戶來說,只是將之前 maven 命令的開頭從“mvn”換成了“mvnd”而已。

    mvnd 構建了一個或者多個 maven 守護進程,使用了全新的 VM 引擎,并添加了緩存及 JIT 優化,從而大大的提高了 maven 項目的構建速度,也讓我們看到了一個能與 Gradle 一較高下的希望,我會持續關注此項目,希望它發展的越來越好。

    參考資料:https://github.com/apache/maven-mvnd

    往期推薦

    Java中List排序的3種方法!


    面試官:HashSet是如何保證元素不重復的?


    面試官:如何實現 List 集合去重?


    總結

    以上是生活随笔為你收集整理的更快的Maven来了,我的天,速度提升了8倍!的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。