Maven Shell

The Maven Shell (mvnsh) is a built-in CLI tool for faster builds during active development. It's available since Maven 4.0.0.

Note: Maven Shell acts as a technical preview showcasing new maven CLI abilities. Therefore, it may change in future versions.

Description

Each time you run an mvn command, the entire process chain is executed: booting Java, starting Maven, loading the configuration, performing the task, tearing down, and exiting — every single time.

Maven Shell keeps a single Maven process running for as long as the shell remains open. This means you avoid booting Java and Maven every time you start a build.

Usage

To use Maven Shell open a command line and call mvnsh. A Maven process is loaded, and you are now using Maven Shell, visible by the line prefix maven mvnsh> as shown in the example below.

D:\Github\Maven\maven>mvnsh

░▒▓██████████████▓▒░ ░▒▓█▓▒░░▒▓█▓▒░░▒▓███████▓▒░  ░▒▓███████▓▒░░▒▓█▓▒░░▒▓█▓▒░
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░       ░▒▓█▓▒░░▒▓█▓▒░
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░       ░▒▓█▓▒░░▒▓█▓▒░
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓██████▓▒░ ░▒▓████████▓▒░
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░  ░▒▓█▓▓█▓▒░  ░▒▓█▓▒░░▒▓█▓▒░       ░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░  ░▒▓█▓▓█▓▒░  ░▒▓█▓▒░░▒▓█▓▒░       ░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░
░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░   ░▒▓██▓▒░   ░▒▓█▓▒░░▒▓█▓▒░░▒▓███████▓▒░ ░▒▓█▓▒░░▒▓█▓▒░
4.0.0-SNAPSHOT

maven mvnsh>

When you run your regular Maven (mvn) commands, they are executed immediately without a delay to boot Java and Maven.

maven mvnsh> mvn verify
[INFO] Scanning for projects...
[INFO] --------------------------------------------------------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]

[...]

To exit the shell and retrun to your regular command line, type exit.

maven mvnsh>
maven mvnsh> exit

D:\Github\Maven\maven>

See also

To improve performance and reduce build times even more, you can use the external Maven Daemon, which manages a pool of resident Maven processes.