maven-mvnd: 加速Maven构建的守护进程


如果您的项目是使用Maven构建的,则必须尝试使用Maven Daemon。 它的速度之快令人震惊,尤其是在多模块项目中。

架构概述:

  • 构建是在一个长期存在的后台进程中进行的,也就是守护进程。
  • 一个守护进程实例可以满足mvnd客户端的多个连续请求。
  • mvnd嵌入了Maven(所以不需要单独安装Maven)。
  • mvnd客户端是一个使用GraalVM构建的本地可执行文件。与启动传统的JVM相比,它的启动速度更快,使用的内存更少。
  • 如果没有空闲的守护进程为构建请求提供服务,可以并行地生成多个守护进程。

这种架构带来了以下优势:

  • 用于运行实际构建的JVM不需要为每次构建重新启动。
  • 持有Maven插件类的类加载器在多次构建中被缓存。因此,插件的jars只需读取和解析一次。Maven插件的SNAPSHOT版本不被缓存。
  • JVM内部的即时编译器(JIT)生成的本地代码也被保留。与原版Maven相比,JIT编译花费的时间更少。在重复构建过程中,JIT优化后的代码可以立即使用。这不仅适用于来自Maven插件和Maven Core的代码,也适用于来自JDK本身的所有代码。

点击标题