apache/maven-mvnd

Apache Maven Daemon

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 1 hour ago
Added to GitGenius on September 20th, 2026
Created on September 21st, 2019
Open Issues & Pull Requests: 144 (+0)
GitHub issues: Enabled
Number of forks: 250
Total Stargazers: 3,459 (+0)
Total Subscribers: 56 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 44
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 662 days
Stale 30+ days: 43
Stale 90+ days: 40

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (38)
  • enhancement (12)
  • Stale (5)
  • waiting-for-feedback (5)
  • discussion (2)
  • wontfix (2)
  • good first issue (1)
  • new feature (1)

Most active issues this week

Detailed Description

Apache Maven Daemon (mvnd) is a build acceleration tool that replaces the standard Maven command with a faster alternative using daemon architecture.

The tool addresses the overhead of starting a new JVM for each Maven build. It works by embedding Maven in a long-running background daemon process that serves multiple consecutive build requests. The mvnd client is a native executable built with GraalVM, which starts faster and consumes less memory than launching a traditional JVM. When no idle daemon is available, multiple daemons can spawn in parallel to handle concurrent build requests. This architecture eliminates JVM startup time, caches classloaders holding Maven plugin classes across builds, and preserves JIT-compiled native code between invocations, reducing recompilation overhead.

Projects with multi-module structures benefit most from mvnd, particularly those where repeated builds are common during development. The tool enables parallel module building by default, using all available CPU cores minus one, though serial builds can be forced with the -T1 flag for projects that do not support parallelism. The console output is redesigned for parallel builds, displaying the status of each build thread on separate lines rather than the rolling output of stock Maven. Installation is straightforward through package managers including SDKMAN, Homebrew, MacPorts, and aqua, with the tool embedding Maven so no separate Maven installation is required.

Development activity shows consistent engagement with the project. The codebase receives regular updates addressing both new features and maintenance needs. Pull requests are reviewed and merged at a steady pace, indicating active stewardship. Issue tracking demonstrates responsiveness to user-reported problems and feature requests. The project maintains documentation that reflects current usage patterns and installation methods across multiple platforms.