Maven加强版 — mvnd的使用测试
# Maven 加强版 — mvnd 的使用测试
Maven、gradle 作为主流的构建工具,几乎所有的 Java 项目都使用,但是 Maven 相对 gradle 来说,构建还是太慢了。特别是构建十几个子项目的程序。
如果要把项目从 Maven 转换成 gradle,成本也是巨大的。
但是现在有了 maven-mvnd ,可以使构建变得更快。
# 1、maven-mvnd 介绍
maven-mvnd
是 Apache Maven团队
借鉴了 Gradle
和 Takari
的优点,衍生出来的更快的构建工具,是 maven 的 强化版
。
github 地址:https://github.com/apache/maven-mvnd
maven-mvnd 特性:
- 嵌入 Maven (所以不需要单独安装 Maven);
maven 过渡到 maven-mvnd
的过程中实现无缝切换
!所以不需要再安装 maven 或进行复杂的配置更改。 - 实际的构建发生在一个长期存在的后台进程中,也就是守护进程。如果没有为构建请求服务的空闲守护进程,则可以并行产生多个守护进程。
- 一个守护进程实例可以处理来自 mvnd 客户机的多个连续请求。
- 使用 GraalVM 构建的本地可执行文件。与传统的 JVM 相比,它启动更快,使用的内存更少。
这种架构带来的优势有:
- 运行实际构建的 JVM 不需要为每个构建重新启动,节省时间。
- JVM 中的实时 (JIT) 编译器生成的本机代码也保留了下来。与 Maven 相比,JIT 编译花费的时间更少。在重复构建过程中,JIT 优化的代码可以立即使用。这不仅适用于来自 Maven 插件和 Maven Core 的代码,也适用于来自 JDK 本身的所有代码。
# 2、使用步骤
# 2.1、下载
下载:https://github.com/mvndaemon/mvnd/releases
我这里是 windows,下载 mvnd-0.7.1-windows-amd64.zip
版本即可。
# 2.2、安装
直接解压。
然后配置环境变量:将 bin 目录添加到 PATH
# 2.3、测试
打开 CMD 终端,输入 mvnd -v
可以看到如下信息表示安装成功:
1 | C:\Users\HaC> mvnd -v |
可以看到 mvnd 集成了 Maven 3.8.3 版本。
# 2.4、使用
在使用上和 Maven 一样,参数也一致。
Maven 使用 mvn clean package
;使用 Maven-mvnd 只需要变成 mvnd clean package
即可,其他同理。
# 2.5、配置修改
为了最小程度的兼容原来的 Maven,可以使用原来的 setting.xml
打开 Maven-mvnd 安装目录下 的 /conf/mvnd.properties
文件,修改:
1 | maven.settings=E://apache-maven-3.5.4-bin//apache-maven-3.5.4//conf//settings.xml |
(注意是 //
)
# 3、打包对比
由于 mvnd-0.7.1 版本使用了 Maven 3.8.3 版本,我这里同样使用 Maven 3.8.3 进行对比。
命令:
1 | # maven 打包命令 |
电脑配置:
CPU:Intel® Core™ i7-4790 CPU @ 3.60GHz 3.60 GHz
内存:16GB
结果如下:
- 13 个子项目
41 秒 vs 21 秒
可以看到 mvnd 打包的总时间比 mvn 快了不少,因为 mvnd 使用了 CPU 的多核心,可以看到每个子模块打包的时间都差不多,所以在单核的机器,就不要尝试使用 mvnd 了。
- 19 个子项目
32 秒 vs 10 秒
呈现子项目越多,相对速度更快的趋势。
总的来说:
如果项目模块很多,可以尝试使用 mvnd 进行辅助打包,比如 测试、生产,可以节省很多时间;
开发则可以继续使用 mvn ,毕竟 IDEA 无法集成 mvnd,可以在 terminal 通过命令打包。
# 关于我
Brath 是一个热爱技术的 Java 程序猿,公众号「InterviewCoder」定期分享有趣有料的精品原创文章!
非常感谢各位人才能看到这里,原创不易,文章如果有帮助可以关注、点赞、分享或评论,这都是对我的莫大支持!