<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          更快的Maven來了,速度提升了8倍!

          共 2095字,需瀏覽 5分鐘

           ·

          2022-01-01 18:20

          點擊關(guān)注公眾號,Java干貨及時送達??

          作者 | 王磊

          來源 | Java中文社群

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

          什么是 mvnd?

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

          mvnd 是 apache/maven 的一個子項目,它并不是一個全新的構(gòu)建工具,而是對 maven 的擴展。它內(nèi)置了 maven,其實現(xiàn)原理是構(gòu)建了一個或者多個 maven 守護進程來執(zhí)行構(gòu)建服務(wù)。

          mvnd 概述

          1.mvnd 的目標(biāo)是使用 Gradle 和 Takari 所知的技術(shù)提供更快的 Maven 構(gòu)建。

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

          2.mvnd 內(nèi)嵌了 Maven,所以不需要單獨安裝 Maven 了。

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

          4.mvnd 客戶端使用 GraalVM 構(gòu)建本地可執(zhí)行文件,與啟動傳統(tǒng) JVM 相比,它啟動得更快,占用的內(nèi)存更少。?

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

          mvnd 優(yōu)點介紹

          mvnd 具有以下優(yōu)點:

          1. 用于運行構(gòu)建的 JVM 不需要每次構(gòu)建都重新啟動。
          2. 持有 Maven 插件類的類加載器在多個構(gòu)建中會被緩存。因此,插件 jar 文件只被讀取和解析一次。(快照版本的 Maven 插件不會被緩存)
          3. JVM 中即時(JIT)編譯器生成的本地代碼也被保留,與常規(guī) Maven 相比,JIT 編譯所花費的時間更少。在重復(fù)構(gòu)建期間,JIT 優(yōu)化的代碼立即可用,這不僅適用于來自 Maven 插件和 Maven Core的代碼,也適用于所有來自 JDK 本身的代碼。

          mvnd 安裝

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

          1.下載并解壓 mvnd

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

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

          2.配置環(huán)境變量

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

          3.測試 mvnd 安裝

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

          mvn VS mvnd 性能測試

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

          我的電腦配置如下:

          1.mvn 性能測試

          傳統(tǒng)的 maven 執(zhí)行結(jié)果如下圖所示:

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

          mvn 性能測試結(jié)果:1.312 秒。

          2.mvnd 性能測試


          mvnd 性能測試結(jié)果 0.154 秒。

          總結(jié)

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

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

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

          1.?12 個適合做外包項目的開源后臺管理系統(tǒng)
          Java后端

          2.?面試官:說一下 final 和 final 的 4 種用法?

          3.?一個由“ YYYY-MM-dd ”引發(fā)的慘案 !元旦來臨前警惕 ~

          4.?Alfred 效率神器使用手冊!給力~

          最近面試BAT,整理一份面試資料Java面試BATJ通關(guān)手冊,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。

          獲取方式:點“在看”,關(guān)注公眾號并回復(fù)?Java?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

          文章有幫助的話,在看,轉(zhuǎn)發(fā)吧。

          謝謝支持喲 (*^__^*)

          瀏覽 45
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美性爱在线观看网站 | 午夜成人福利片 | www.一区二区三区在线 | 欧洲 国产精品久久久久久爽爽爽麻豆色哟哟 | 羞羞插插无码 | 午夜性爱视频在线播放 |