mvnd aims at providing faster Maven builds using techniques known from Gradle and Takari. {
} {
*} mvnd embeds Maven (so there is no need to install Maven separately). {
*} The actual builds happen inside a long living background process, a.k.a. daemon. {
*} One daemon instance can serve multiple consecutive requests from the mvnd client. {
*} The mvnd client is a native executable built using GraalVM. It starts faster and uses less memory compared to starting a traditional JVM. {
*} Multiple daemons can be spawned in parallel if there is no idle daemon to serve a build request. {
*} The JVM for running the actual builds does not need to get started anew for each build. {
*} The classloaders holding classes of Maven plugins are cached over multiple builds. The plugin jars are thus read and parsed just once. SNAPSHOT versions of Maven plugins are not cached. {
*} The native code produced by the Just-In-Time (JIT) compiler inside the JVM is kept too. Compared to stock Maven, less time is spent by the JIT compilation. During the repeated builds the JIT-optimized code is available immediately. This applies not only to the code coming from Maven plugins and Maven Core, but also to all code coming from the JDK itself.

WWW: https://github.com/apache/maven-mvnd
