Appearance
Using mvnw
When using Maven, we typically only use the mvn command. Some of you might have heard of mvnw. What is it?
mvnw is short for Maven Wrapper. By default, when we install Maven, all projects on the system use the globally installed Maven version. However, some projects may require a specific Maven version. In such cases, the Maven Wrapper can be used to install the specified Maven version for that particular project without affecting other projects.
Simply put, the Maven Wrapper provides an independent, specified version of Maven for a project to use.
Installing Maven Wrapper
The easiest way to install the Maven Wrapper is to run the installation command in the root directory of the project (where the pom.xml is located):
bash
$ mvn wrapper:wrapperThis will automatically use the latest version of Maven. If you want to specify the Maven version to use, run the installation command with the version specified, for example, 3.9.0:
bash
$ mvn wrapper:wrapper -Dmaven=3.9.0After installation, check the project structure:
my-project
├── .mvn
│ └── wrapper
│ └── maven-wrapper.properties
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
├── main
│ ├── java
│ └── resources
└── test
├── java
└── resourcesYou will notice the addition of mvnw, mvnw.cmd, and the .mvn directory. We only need to replace the mvn command with mvnw to use the Maven version associated with the project. For example:
bash
mvnw clean packageWhen running on Linux or macOS, you need to prefix it with ./:
bash
$ ./mvnw clean packageAnother purpose of the Maven Wrapper is to commit the mvnw, mvnw.cmd, and .mvn directory to the version control repository, ensuring that all developers use the same Maven version.
Exercise
Use mvnw to compile the hello project.
Summary
Using the Maven Wrapper allows you to specify a particular Maven version for a project.