maven/maven-wrapper
Manfred Moser c64b0f14ed [maven-release-plugin] prepare release maven-wrapper-0.2.0 2020-05-23 09:56:35 +02:00
..
.mvn/wrapper updated wrapper maven version to 3.5.0 2020-05-23 09:56:24 +02:00
src fix to avoid usage of stale maven wrapper jar 2020-05-23 09:56:20 +02:00
.gitignore Add .DS_Store to .gitignore 2020-05-23 09:56:25 +02:00
CHANGELOG.md solaris support changelog entry and release date 2020-05-23 09:56:34 +02:00
LICENSE.txt Add license file 2020-05-23 09:55:45 +02:00
README.md added section about supported systems 2020-05-23 09:56:33 +02:00
mvnw fixing issue on Solaris 2020-05-23 09:56:32 +02:00
mvnw.cmd remove unused MAVEN_CMD_LINE_ARGS 2020-05-23 09:56:11 +02:00
pom.xml [maven-release-plugin] prepare release maven-wrapper-0.2.0 2020-05-23 09:56:35 +02:00

README.md

Maven Wrapper

The Maven Wrapper is an easy way to ensure a user of your Maven build has everything necessary to run your Maven build. Why might this be necessary? Maven to date has been very stable for users, is available on most systems or is easy to procure: but with many of the recent changes in Maven it will be easier for users to have a fully encapsulated build setup provided by the project. With the Maven Wrapper this is very easy to do and it's a great idea borrowed from Gradle.

The easiest way to setup the Maven Wrapper for your project is to use the Takari Maven Plugin with its provided wrapper goal. To add all the necessary Maven Wrapper files to your project execute the following command:

mvn -N io.takari:maven:wrapper

Normally you instruct users to run the mvn command like the following:

$ mvn clean install

But now, with a Maven Wrapper setup, you can instruct users to run wrapper scripts:

$ ./mvnw clean install

or

$ ./mvnw.cmd clean install

A normal Maven build will be executed with the one important change that if the user doesn't have the necessary version of Maven specified in .mvn/wrapper/maven-wrapper.properties it will be downloaded for the user first.

Supported Systems

The wrapper should work on various operating systems including

  • Linux (numerous versions, tested on Ubuntu and CentOS)
  • OSX
  • Windows (various newer versions)
  • Solaris (10 and 11)

For all those various shell systems should work including

  • bash
  • dash
  • zsh

In term of Maven versions it should work with any Maven 3.x version and it defaults to the latest release - currently 3.5.0.

Changes

Please check out the changelog for more information about our releases.

Using a Different Version of Maven

To switch the version of Maven used to build a project you can initialize it using

mvn -N io.takari:maven:wrapper -Dmaven=3.3.3

which works for any version except snapshots. Once you have a wrapper you can change its version by setting the distributionUrl in .mvn/wrapper/maven-wrapper.properties, e.g.

distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.2.1/apache-maven-3.2.1-bin.zip