Building Maven

Why would I want to build Maven?

Building Maven (or a plugin, or any component) yourself is for one of two reasons:

  • to try out a bleeding edge feature or bugfix (issues can be found in JIRA),
  • to fix a problem you are having and submit a patch to the developers team.

Checking out the sources

All of the source code for Maven and its related libraries is in managed in the ASF source code repositories: for details, see https://maven.apache.org/scm.html.

Building Maven

Building a Maven Plugin or Component

Building a Maven plugin or component is like any Maven build:

mvn install

Running Integration Tests

Before submitting a patch, it is advised to run the integration tests, which are available in the run-its profile:

mvn -Prun-its install

Building Maven core

Until Maven 3.3, Maven core build could be boostrapped with an Ant build. This bootstrap has been removed in Maven 3.5: you need a pre-built Maven to build Maven from source.

To do this, run from the source directory:

mvn install

The assemblies will be created in apache-maven, and can be manually unzipped to the location where you'd like the resulting Maven installed.

If you want to have the resulting Maven directly copied to a directory, you can use the distributionTargetDir property:

mvn -DdistributionTargetDir="$HOME/app/maven/apache-maven-SNAPSHOT" install

Running the full Maven core integration tests

Before checking in a change or submitting a patch to Maven core, it is required to run the core integration tests. Using your local build of Maven, run:

mvn test -Prun-its

Consult Core ITs documentation for more options.