Maven is an open source build tool for enterprise Java projects, designed to make the build process a lot more easier. Maven uses a declarative approach, where the project structure and contents are described, rather then the task-based approach used in Ant. This helps enforce company-wide development standards and reduces the time needed to write and maintain build scripts. Maven is a software tool for Java Programming language project management and automated software build. It is similar in functionality to the Ant tool but has a simpler build configuration model, based on an XML format.
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. A key feature of Maven is that it is network-ready. The core engine has the capability to dynamically download plugins from a repository, the same repository that provides access to many versions of different Open Source Java projects.
This repository and its reorganized successor, the Maven 2 repository, strives to be the distribution mechanism for Java applications. Maven provides built in support not just for retrieving files from this repository, but to upload artifacts at the end of the build. A local cache of downloaded artifacts acts as the primary means of synchronizing the output of projects on a local system. Maven, though it strives to make builds easier and a lot more simpler, has to face a lot of stiff criticism for being slow and with many technical snags and hitches. The biggest disadvantage is that it can be used only as part of a larger build tool and not independently.
Java Development India offers Maven development, Maven consulting and Maven related solutions from our offshore software development outsourcing centre at Kochi, Kerala in India.
|