소개
Mvndaemon은 GraalVM 기반의 Maven Daemon으로, 기존 Maven보다 빠른 빌드 속도를 제공합니다. 이 프로젝트는 Apache Maven MVND 저장소에서 관리되며, 백그라운드에서 실행되는 데몬을 통해 JVM 시작 비용을 줄이고 클래스 로더 및 JIT 최적화 코드를 재사용합니다. Windows를 포함한 여러 플랫폼에서 ZIP 파일 형태로 배포되며, Scoop, Chocolatey, SDKMAN! 등 다양한 패키지 관리자를 통해 설치할 수 있습니다. mvnd 클라이언트는 기존 mvn과 동일한 명령어를 지원하며, 병렬 빌드 및 개선된 콘솔 출력과 같은 추가 기능을 제공합니다.
상세정보
병렬 빌드 지원
mvnd는 기본적으로 사용 가능한 CPU 코어 수를 기반으로 모듈을 병렬로 빌드합니다. 구체적으로 Math.max(Runtime.getRuntime().availableProcessors() - 1, 1) 개의 코어를 사용하며, 소스 트리가 병렬 빌드를 지원하지 않는 경우 -T1 옵션을 통해 직렬 빌드로 강제할 수 있습니다.
개선된 콘솔 출력
병렬 빌드 시 기존 Maven의 복잡한 출력을 대체하여, 각 빌드 스레드의 상태를 별도 줄에 표시하는 간결한 비롤링 뷰를 제공합니다. 빌드가 완료되면 전체 Maven 출력이 콘솔에 전달되어 일반적인 Maven 사용 경험을 유지합니다.
데몬 기반 아키텍처
하나의 mvnd 데몬 인스턴스는 여러 연속적인 빌드 요청을 처리할 수 있으며, 유휴 데몬이 없을 경우 필요에 따라 추가 데몬을 병렬로 spawn할 수 있습니다. 이로 인해 JVM 시작, 클래스 로딩, JIT 최적화 비용을 반복적으로 발생시키는 것을 방지합니다.
다운로드·설치 방법
Windows 사용자는 Scoop을 통해 간단히 mvnd를 설치할 수 있습니다. Scoop이 설치되어 있다면 다음 명령어를 실행합니다:
$ scoop install mvndaemon
설치 후, PATH에 mvnd의 bin 디렉터리가 추가되었는지 확인하고, 터미널을 재시작한 후 mvnd --version 명령을 통해 정상 설치를 확인할 수 있습니다.
참고: Windows에서 VCRUNTIME140.dll was not found 오류가 발생할 경우, Microsoft에서 제공하는 vc_redist.x64.exe를 설치해야 합니다.
기본 사용법/명령어
mvnd 클라이언트는 기존 Maven(mvn)과 동일한 명령어를 지원하므로, 익숙한 Maven 워크플로를 그대로 사용할 수 있습니다. 예를 들어, 프로젝트를 검증하려면 다음처럼 실행합니다:
mvnd verify
mvnd 전용 옵션도 제공됩니다:
--status: 현재 실행 중인 데몬 목록을 표시합니다.--stop: 모든 실행 중인 데몬을 종료합니다.mvnd --help: 지원하는 모든 옵션의 전체 목록을 출력합니다.
첫 사용 시, mvnd --version 명령을 통해 버전 정보와 함께 네이티브 실행 여부를 확인할 수 있습니다.
이런 경우에 유용합니다
대규모 멀티모듈 Maven 프로젝트를 자주 빌드하는 Java 개발자에게 유용합니다. 특히 CI/CD 파이프라인이나 로컬 개발 환경에서 반복적인 mvn clean install, mvn test 등의 명령을 실행할 때, 데몬 기반 아키텍처로 인해 JVM 시작 및 클래스 로딩 오버헤드가 크게 줄어들어 전체 빌드 시간이 단축됩니다. 또한, 병렬 빌드 지원을 통해 멀티코어 CPU의 성능을 더 효과적으로 활용할 수 있습니다.
지원 환경·시스템 요구사항
mvnd는 Windows x64 플랫폼을 지원하며, 설치를 위해 Visual C++ Redistributable이 필요할 수 있습니다. ZIP 파일 형태로 배포되며, 수동 설치 시 다운로드 후 압축을 해제하고 bin 디렉터리를 PATH에 추가해야 합니다. GraalVM 기반 네이티브 이미지로 실행되므로 별도의 JDK 설치가 필요하지 않습니다.
최신 버전·업데이트
현재 버전은 1.0.6이며, 공식 저장소의 릴리스 페이지에서 업데이트 내역을 확인할 수 있습니다. 최신 버전은 Scoop 저장소를 통해 업데이트할 수 있습니다.
시스템 요구사항
별도의 시스템 요구사항이 등록되지 않았습니다.


