maven项目构建加速(二)辅助工具篇

2022/9/13 教程 maven

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行,为需要指定的jdk路径,如果配置了JAVA_HOME环境变量这里可以不配置,例如:C:/Users/Maria/.jdks/corretto-1.8.0_342

                    
java.home =
properties

大约153行,为原有maven的settings.xml文件的路径,例如:D:/apache-maven-3.8.6/conf/settings.xml

                    
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+RCtrl+Shift+Alt+R,在弹出的菜单点击install右侧的> ,选择Edit and Run

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

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

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.8