apache/maven-mvnd
一个加速 Maven 构建的工具,通过常驻后台守护进程、原生客户端和并行模块构建缩短编译时间。
- Star
- 3,452
- Fork
- 252
- 未关闭 Issue
- 94
- 最近提交
- 昨天
这是什么?
mvnd 即 Maven Daemon,是 mvn 命令的替代品,目标是让 Maven 构建更快。它内嵌了 Maven,无需单独安装 Maven,构建任务在一个长期运行的后台 JVM 进程中执行,并可连续处理多次构建请求。插件的类加载器和 JIT 编译后的代码会在构建之间保留,因此重复构建无需重新启动 JVM,也不必重复解析插件 jar。
客户端使用 GraalVM 编译为原生可执行文件,启动更快、占用内存更少。默认情况下,模块会使用除一个以外的所有 CPU 核心并行构建,控制台为每个构建线程单独显示一行状态,构建结束后再输出完整的 Maven 日志。当没有空闲守护进程时,还可以并行启动多个守护进程。
可以通过 SDKMAN!、Homebrew、MacPorts、aqua 安装,也可以手动下载 ZIP 包。守护进程需要 Java 17 或更高版本,原生客户端已为多个 Linux、macOS 和 Windows 平台提供。
核心功能
- 01内嵌 Maven,无需单独安装
- 02在连续构建之间复用长期运行的 JVM 守护进程
- 03默认使用多个 CPU 核心并行构建模块
- 04提供 GraalVM 原生客户端,启动更快
- 05以简化视图显示每个构建线程的状态
- 06兼容 mvn 的命令行参数
适用场景
- 加速大型多模块 Maven 项目的本地开发构建
- 减少反复构建时 JVM 启动带来的耗时
- 在保持命令语法不变的前提下替换脚本中的 mvn
快速上手
- 1
通过 SDKMAN! 安装
sdk install mvnd - 2
或通过 Homebrew 安装
brew install mvndaemon/homebrew-mvnd/mvnd - 3
在 Maven 项目中使用 mvnd 运行构建
mvnd verify
使用前须知
- 守护进程需要 Java 17 或更高版本。
- 部分平台只能使用 Java 客户端而非原生客户端。
标签
常见问题
- maven-mvnd 是什么?
- 一个加速 Maven 构建的工具,通过常驻后台守护进程、原生客户端和并行模块构建缩短编译时间。 mvnd 即 Maven Daemon,是 mvn 命令的替代品,目标是让 Maven 构建更快。它内嵌了 Maven,无需单独安装 Maven,构建任务在一个长期运行的后台 JVM 进程中执行,并可连续处理多次构建请求。插件的类加载器和 JIT 编译后的代码会在构建之间保留,因此重复构建无需重新启动 JVM,也不必重复解析插件 jar。
- maven-mvnd 可以免费使用吗?用的什么许可证?
- maven-mvnd 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- maven-mvnd 还在维护吗?
- 活跃维护中。maven-mvnd 最近一次提交是在 2026年11月6日。
- maven-mvnd 适合用来做什么?
- 加速大型多模块 Maven 项目的本地开发构建 减少反复构建时 JVM 启动带来的耗时 在保持命令语法不变的前提下替换脚本中的 mvn
- maven-mvnd 怎么安装和运行?
- 通过 SDKMAN! 安装: sdk install mvnd 或通过 Homebrew 安装: brew install mvndaemon/homebrew-mvnd/mvnd 在 Maven 项目中使用 mvnd 运行构建: mvnd verify
- 在哪里获取 maven-mvnd?
- 源代码和安装说明在 GitHub 上:https://github.com/apache/maven-mvnd
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个 Java 命令行应用框架,支持注解和编程两种方式,提供子命令、ANSI 彩色帮助和 Tab 自动补全。
一组 Java 代码生成器,包含 AutoValue、AutoFactory、AutoService 等注解处理工具。
面向 Gradle 和 Maven 的构建插件,可统一运行多种语言和文件类型的代码格式化工具。
基于 Telegram Bot API 的 Java 库,用于快速开发 Telegram 机器人,支持长轮询和 Webhook。
用 Java 编写的快速源代码搜索与交叉引用引擎,可索引代码及版本控制历史。