Maven - Phase (Build lifecycle)


A phase is a step in the build lifecycle, which is an ordered sequence of phases.

When a phase is given, Maven will execute every phase in the sequence up to and including the one defined.

Phases are actually mapped to underlying goals.

The specific goals executed per phase is dependant upon the packaging type of the project. For example, package executes jar:jar if the project type is a JAR, and war:war is the project type is a WAR.


If we execute the compile phase,

mvn compile

the phases that actually get executed are:

Most common phases

Default Life cycle:

  • validate: validate the project is correct and all necessary information is available
  • compile: compile the source code of the project
  • test: test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
  • package: take the compiled code and package it in its distributable format, such as a JAR.
  • integration-test: process and deploy the package if necessary into an environment where integration tests can be run
  • verify: run any checks to verify the package is valid and meets quality criteria
  • install: install the package into the local repository, for use as a dependency in other projects locally
  • deploy: done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.


  • clean: cleans up artifacts created by prior builds
  • site: generates site documentation for this project based upon information on the project's pom. You can look at the documentation generated under target/site.
  • process-resources: the resources are copied and filtered



mvn phase


Documentation / Reference

Powered by ComboStrap