Maven is a “Yiddish” [German language] word meaning “Accumulator of Knowledge”. Maven was originally designed to simplify building processes in Jakarta Turbine project. There were several projects and each project contained slightly different ANT build files. JARs were checked into CVS.
Apache group then developed Maven which can build multiple projects together, publish projects information, deploy projects, share JARs across several projects and help in the collaboration of teams. Apache Maven is a “Project Management Framework”, it is much more than a simple Build tool, its declarative and standard approach simplifies many aspects of the Project Life cycle.
The main Objective of MAVEN is
- A comprehensive model for projects, which is reusable, maintainable, and easier to comprehend [Understand].
- Plugins or tools that interact with this declarative model.
MAVEN follows “Convention over Configuration” Principle, which means that developers are not required to create a build process themselves, Developers do not have to mention each and every configuration detail. Maven provides sensible default behavior for projects. MAVEN does the following activities of the project life cycle automatically.
- Provides default Project Structure
- Download Required Dependencies [Jars files]
- Compiles Source code
- Packaging projects as .jar, .war, .ear etc.
- Starts Server
- Deploying Projects into Servers
- Perform Unit Testing
- Preparing Test Reports
- Preparing Documentations
- Undeploy applications from Servers
- Stops Server.