Introduction to Maven

Maven is a simple build automation tool which is basically used with java projects. Maven is also defined as a comprehensive project management tool. It aims to provide the developers a complete and detailed build life cycle framework of an application.

Maven also ease up the task of developers in checking a build status, generating reports (basically javadocs) and setting up the automated build process and monitor the same.

The ease of source code compilation, distribution, documentation, collaboration with different teams and other vital tasks are seamless by using maven.

Maven aims to describe 2 important things :

  1. How a software is built.
  2. The dependencies, plug-ins & profiles that the project is associated in a standalone or a distributed environment.

The maven can also be used in building & managing the projects written using C#, ruby and other programming languages as well.


Maven History

Maven was initially designed and developed by the Jakarta turbine project. At the later point of time, the Apache group developed the Maven to such an extent to support developing & building multiple projects together, publishing those projects, deploying them and generating the reports.

The JARs/WARs of any maven project can be shared across any distributed environments.


Advantages of Using Maven over Ant

  • Managing dependencies.
  • Convention over configuration - configuration is very minimal
  • Multiple/Repeated builds can be achieved.
  • Focus on automation.
  • Plugin management.
  • Testing - ability to run JUnit and other integration test suites.
  • Making the development process transparent.
  • Provision to check the status of each build.
  • Avoiding inconsistent setups.
  • Standard and uniformed infrastructure among projects.