Introduction to the Maven Build Life Cycle

Maven is based around the central concept of a build life cycle. Right from compilation to distribution, every phase is well defined in Maven which is termed as build life cycle.

For the person building a project, it is necessary to learn a small set of commands to build any Maven project, and the POM will ensure that they get the results they desired.

There are three built-in build life cycles in basics: default, clean and site.

The default life cycle handles your project deployment.

The clean life cycle handles project cleaning.

while the site life cycle handles the creation of your project’s site documentation.

Complete Build Life cycle

Each of these build life cycles is defined by a different list of build phases, wherein a build phase represents a stage in the life cycle.

Build Life Cycle Maven

  • 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.
  • verify – run any checks on results of integration tests to ensure quality criteria are met
  • install – install the package into the local repository, for use as a dependency in other projects locally
  • deploy – done in the build environment, copies the final package to the remote repository for sharing with other developers and projects.

For a complete list of the life cycle phases, refer to the Lifecycle Reference.

default Lifecycle

<phases>
  <phase>validate</phase>
  <phase>initialize</phase>
  <phase>generate-sources</phase>
  <phase>process-sources</phase>
  <phase>generate-resources</phase>
  <phase>process-resources</phase>
  <phase>compile</phase>
  <phase>process-classes</phase>
  <phase>generate-test-sources</phase>
  <phase>process-test-sources</phase>
  <phase>generate-test-resources</phase>
  <phase>process-test-resources</phase>
  <phase>test-compile</phase>
  <phase>process-test-classes</phase>
  <phase>test</phase>
  <phase>prepare-package</phase>
  <phase>package</phase>
  <phase>pre-integration-test</phase>
  <phase>integration-test</phase>
  <phase>post-integration-test</phase>
  <phase>verify</phase>
  <phase>install</phase>
  <phase>deploy</phase>
</phases>

clean Lifecycle

clean lifecycle is defined directly with its plugin bindings.

<phases>
  <phase>pre-clean</phase>
  <phase>clean</phase>
  <phase>post-clean</phase>
</phases>
<default-phases>
  <clean>
    org.apache.maven.plugins:maven-clean-plugin:2.5:clean
  </clean>
</default-phases>

site Lifecycle

site lifecycle is defined directly with its plugin bindings.

<phases>
  <phase>pre-site</phase>
  <phase>site</phase>
  <phase>post-site</phase>
  <phase>site-deploy</phase>
</phases>
<default-phases>
  <site>
    org.apache.maven.plugins:maven-site-plugin:3.3:site
  </site>
  <site-deploy>
    org.apache.maven.plugins:maven-site-plugin:3.3:deploy
  </site-deploy>
</default-phases>

Conclusion

Hence Maven’s each phase is defined and understanding about each phase is mandatory to implement crystal clear process in real time project.

Please follow and like us:
error