is a software tool for project management and build automation
. While primarily used for Java
programming, it can also be used to build and manage projects written in C#
, and other languages. Maven serves a similar purpose to the Apache Ant
tool, but it is based on different concepts and works in a profoundly different manner. Maven is hosted by the Apache Software Foundation
, where it was formerly part of the Jakarta Project
Maven uses a construct known as a Project Object Model
(POM) to describe the software project being built, its dependencies on other external modules and components, and the build order. It comes with pre-defined targets for performing certain well-defined tasks such as compilation of code and its packaging.
Maven dynamically downloads Java
libraries and Maven plug-ins from one or more repositories. Maven provides built-in support for retrieving files from the Maven 2 Central Repository and other Maven repositories, and can upload artifacts to specific repositories after a successful build. A local cache of downloaded artifacts acts as the primary means of synchronizing the output of projects on a local system.
Maven is built using a plugin-based architecture that allows it to make use of any application controllable through standard input. Theoretically, this would allow anyone to write plugins to interface with build tools (compilers, unit test tools, etc.) for any other language. ... Read More