What is Maven:
Apache maven is an advanced project management tool for java software projects which is based on POM (project object model). It uses POM (project object model) file to manage project’s build, dependency and documentation.
The most powerful futures of maven are to download the project dependency libraries automatically and to create the right project structure.
Maven’s primary objective is to provide developers a comprehensive project model which is reusable, maintainable, and easier to comprehend. It is developed by Apache group to build multiple projects together, to publish project information and to share JARs across multiple projects.
Simple project setup that follows best practices.
Consistent usage across all projects.
Dependency management: Superior dependency management including automatic updating.
Ability to easily work with multiple projects at the same time.
Repository: A large and growing repository of libraries and metadata. Project dependencies can be loaded from repository.
Extensible via plug-ins: Extensible, with the ability to easily write plugins in Java or scripting languages.
Instant access to new features with little or no extra configuration.
Model based builds: Maven is able to build any number of projects into predefined output types such as a JAR, WAR and metadata.
Coherent site of project information: Using the same metadata as for the build process, Maven is able to generate a web site or PDF including any documentation.
Release management and distribution publication: Without much additional configuration, Maven will integrate with your source control system like Subversion or Git and manage the release of a project based on a certain tag.
Backward Compatibility: We can easily port the multiple modules of a project into Maven 3 from older versions of Maven.
Better Error and Integrity Reporting: Maven improved error reporting, and it provides a link to the Maven wiki page where we will get full description of the error.