Installing Maven on Windows

Learn to install Maven on a Windows operating system. In this maven installation guide, we are installing Maven on a Windows 11 machine. The steps are the same for a Windows 10 machine as well.

1. Windows Environmant Variables

Maven is a build and dependency management tool for Java applications development. Just like many other Java development tools, Maven is not installed as a Windows service, rather it is configured using the Windows environment variables.

Windows environment variables option
Windows environment variables option

2. Steps to Install and Configure Maven

Follow the steps needed to install maven on the windows operating system.

2.1. Verify Installed JDK and ‘JAVA_HOME’ Environment Variable

We must have Java installed on our computer and the JAVA_HOME must be set in the environment variables.

To install java, download JDK installer and install Java. Then add/update the JAVA_HOME variable to the JDK installation folder.

On my computer, JAVA_HOME is pointing to the JDK 17 installation folder.

JAVA_HOME Variable

2.2. Download and Extract Maven Zip File

We can download the latest version from Maven from the official website. Now we need to extract the downloaded zip file in any location.

I have extracted it on C:\devsetup\maven. You can choose your own folder location.

Maven Installation folder
Maven Installation folder

Let us briefly discuss what these directories contain:

  • The bin folder contains the batch files and shell scripts to run Maven on various platforms.
  • The boot folder contains the jars required for Maven to start.
  • The conf folder contains the default settings.xml file used by Maven.
  • The lib folder contains the libraries used by Maven. It also contains an ext folder in which third-party extensions, which can extend or override the default Maven implementation, can be placed.

2.3. Add M2_HOME Environment Variable

Note

Since Maven 3.5.0, the environment variable M2_HOME is not used/supported anymore. We can skip the M2_HOME variable setup with the latest version of Maven.

Now add the M2_HOME to windows environment variables. The value will be the installation location on your computer.

Note that it is an optional step, yet it is highly recommended. Many external IDEs and tools rely on M2_HOME variable to work with Maven.

Add M2_HOME Environment Variable
Add M2_HOME Environment Variable

2.4. Include ‘bin’ directory in PATH Variable

To run Maven commands from the console, windows should be able to locate the Maven batch files. Update the PATH variable with '%M2_HOME%\bin' directory.

Add Path to Maven bin folder
Add Path to Maven bin folder

3. Verify Maven Installation

Maven installation is complete. Now, let’s test it from the windows command prompt.

  1. Go to start menu and type cmd in application location search box.
  2. Press ENTER. A new command prompt will be opened.
  3. Type mvn -version in command prompt and hit ENTER.
$ mvn -version

The mvn command runs this batch file mvn.bat from bin folder of the Maven installation location. That’s why we added the the location to PATH environment variable.

After checking JAVA_HOME and any optional arguments (Maven_OPTS), the batch file runs its main class org.codehaus.plexus.classworlds.launcher.Launcher.

Verify Maven Installation
Verify Maven Installation

This should show the Maven version information, path to Maven bin folder and installed Java version.

If you face any error in the command prompt then please cross-check all the above steps.

Happy Learning !!

Was this post helpful?

Join 7000+ Fellow Programmers

Subscribe to get new post notifications, industry updates, best practices, and much more. Directly into your inbox, for free.

16 thoughts on “Installing Maven on Windows”

  1. Java and Maven installed properly but “‘mvn’ is not recognized as an internal or external command, operable command or batch file” error occur in cmd.

    Reply

Leave a Comment

HowToDoInJava

A blog about Java and its related technologies, the best practices, algorithms, interview questions, scripting languages, and Python.