mvnd
- 一、簡介
- 一、定位與背景
- 二、核心架構與加速原理
- 三、使用注意事項
- 二、下載安裝
- 三、idea集成mvnd插件
- 四、打包測試時長
一、簡介
mvnd(Maven Daemon)是Apache Maven團隊推出的高性能構建工具,旨在解決傳統Maven構建速度慢的問題。它通過引入守護進程、GraalVM等技術創新,顯著提升構建效率,同時保持與Maven的兼容性。以下是其核心要點:
一、定位與背景
-
項目起源
- 由Apache Maven團隊開發,是Maven的子項目,借鑒了Gradle的守護進程和Takari的生命周期優化技術。
- 目標:在不改變Maven使用習慣的前提下,提供更快的構建速度,與Gradle競爭。
-
核心問題解決
- 傳統Maven每次構建需重啟JVM,加載插件和依賴,耗時嚴重;mvnd通過守護進程和緩存機制消除這些開銷。
二、核心架構與加速原理
-
守護進程(Daemon)
- 長期運行的后臺進程,處理連續構建請求,避免重復啟動JVM。
- 支持并行啟動多個守護進程,應對高并發構建。
-
GraalVM替代JVM
- 客戶端使用GraalVM編譯為本地可執行文件,啟動速度更快,內存占用更低。
-
緩存與JIT優化
- 插件緩存:插件類加載器在多構建間緩存,避免重復解析(快照版本除外)。
- JIT保留:即時編譯生成的本地代碼被保留,重復構建時直接使用優化后的代碼,減少編譯時間。
-
并行構建
- 默認使用多核CPU并行構建模塊(核心數公式:
max(可用核數-1, 1)
),可通過-T1
強制串行。
- 默認使用多核CPU并行構建模塊(核心數公式:
三、使用注意事項
-
命令兼容性
- 只需將
mvn
替換為mvnd
,參數完全一致(如mvnd clean package -DskipTests
)。
- 只需將
-
局限性
- 快照插件:不緩存快照版本插件,每次重新加載。
- 中文亂碼:可能需調整終端編碼(與IDEA控制臺兼容性有關)。
- 路徑轉義:Windows配置文件中路徑需雙斜杠(
\\
)。
二、下載安裝
github地址:https://github.com/apache/maven-mvnd
1、在github下載mvnd解壓,目前最新版1.0.2,目錄與maven相似
2、設置環境變量
在環境變——》系統變量——》path添加{maven-mvnd-path}/bin
3、查看是否安裝完成,終端輸入命令 mvnd -v
,顯示版本即安裝完成
三、idea集成mvnd插件
1、idea插件市場安裝Maven Helper
插件
2、安裝后重啟idea,設置maven helper使用mvnd
3、更改mvnd的配置
配置文件位置
更換為自己的本地倉庫路徑
更換阿里鏡像
4、右鍵進行打包項目
四、打包測試時長
使用maven打包,clean后
第二次使用maven打包。未clean
使用mvnd打包,clean后
第二次打包,未clean。提升了一倍