Maven is an automation tool which is used primarily for Java projects. The word Maven means “accumulator of knowledge”.
Objectives of Maven:
Maven’s primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal there are several areas of concern that Maven attempts to deal with:
- Making the build process easy.
- It provides the uniform build system.
- Giving quality project information.
- Providing guidelines for best practices development.
You must have heard a few things about Maven:
- Maven is a site documentation tool.
- Maven extends to Ant and helps you download dependencies.
- Maven is a set of reusable Ant script.
Maven contains two aspects of building software: firstly, it describes how the software is built, and second it describes its dependencies. Considered to preceding tools like Apache Ant, it uses protocol for the build process, and only exceptions need to be written down. Maven dynamically downloads the Java based and Maven plug-ins from one or more areas such as Maven2 Central Repository, and stores them in a local cache.
Maven can also be used to build and manage projects written in C, Ruby, and other languages. The Maven project is developed by the Apache Software Foundation, and it is a part of the Jakarta Project. Maven and Ant both are build tools developed by Apache. The only main purpose of these technologies is to ease the build process of any project.
Maven is built using a plug-in based architecture that allows making use of any application controllable through standard input. It is also used to allow a project to build using its project object model (POM) and a set of plugins that are shared by all projects using Maven, providing a uniform build system. Alternative technologies like Gradle, do not depend on XML but keep the key concepts that Maven introduced.
If you recently installed Maven, it may take a while on the first run. This is because Maven is downloading the recent artifacts (plug-in jars and some other files) into your local repository. We may also need to execute the command for a couple of times before it succeeds. This is because the server may timeout before our downloads are complete but we may need not to worry as there are ways to fix that. Maven provides an easy way for clients to update their installations so that they can take advantage of any changes that have been made to Maven itself by Apache.