mvnd-快速打包maven项目
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。提升了一倍