mvnd是以maven为基础并融合了部分Gradle 和 Takari 中已知技术的构建工具,通过引入守护进程、使用GraalVM启动等方式提高构建速度,其命令绝大部分与maven兼容。本文将对mvnd的基本配置使用进行讲解,更多介绍参考官方文档 Introduction of mvnd
MavenHelper是IntelliJ IDEA的插件,以前我们主要用它来分析maven依赖,解决依赖冲突。自4.20版本,插件增加了通过终端使用自定义命令 (mvnd) 运行目标的选项,现在我们以可以借助它更便捷的执行mvnd命令,本文将对此进行讲解。
amaven是由阿里基于maven开发的又一个构建工具,计划开源,目前相关描述仅见于公众号阿里开发者
的文章中《 java应用提速(速度与激情)》,因其尚未开放下载,在此也无法做过多讲解。
一、mvnd的使用
1、配置
下载、安装、设置环境变量可以请直接参考官方文档 How to install mvnd ,配置环节是比较容易出错的,这里重点讲述。
以mvnd-8.0版本为例,编辑mvnd-8.0-windows-amd64\conf\mvnd.properties配置文件,修改以下几处配置:
大约124行,如果不指定utf-8编码,在一些文件编码没有统一规范的项目执行命令容易报错
mvnd.jvmArgs = -Dfile.encoding=UTF-8 properties
大约149行,
java.home = properties
大约153行,
maven.settings = properties
应当注意的是:
①在0.8及以下版本中,环境变量JAVA_HOM
优先级高于这里的jvm.home
配置,详情见The JAVA_HOME
environment variable takes precedence over the java.home
configuration property。但在0.8.1版本中已修复了此问题,详情见System properties should have precedence over environment variables, fixes apache#675。
②所有路径的分隔符要使用/
而不是\
,否则无法识别
2、测试
查看mvnd版本,此命令将列出mvnd版本,终端名称,当前生效的java版本及jre路径,内嵌的maven版本及路径,本地语言,平台编码,当前系统的名称、版本、架构、家族
mvnd -v shell
查看mvnd守护进程状态,如果结果为空说明当前没有守护进程运行
mvnd --status shell
停止所有守护进程的运行,开发过程中切换代码分支后有时候会莫名其妙的构建失败,这时可以尝试使用此命令杀死守护进程后重新执行构建命令
mvnd --stop shell
在项目目录下打开控制台测试使用mvnd进行构建
mvnd clean install -Dmaven.test.skip=true shell
二、MavenHelper的使用
1、配置
下载、安装MavenHelper自不必说,这里主要说明一下配置。File-》Settings-》Other Settings-》Maven Helper,勾选Use a Terminal to run goals,with a custom mvn command:
,并在右侧输入框中将mvn
替换为mvnd
。

2、测试
在打开的maven项目里面,使用快捷键Ctrl+Alt+R
或Ctrl+Shift+Alt+R
,在弹出的菜单点击install
右侧的>
,选择Edit and Run
。

将install
命令修改为clean install '-Dmaven.test.skip=true'
,点击OK。在这里编辑完,下次快捷键调出菜单就会显示编辑后的命令。

然后会自动打开一个Terminal窗口,执行该命令。

预览: