From Oxxus Wiki
Apache Maven provides very useful comprehension and software project management tool with concept based on POM (project object model). It offers
project's management for building, reporting and documentation, all from single piece of information.
Application derived its name from Yiddish word maven, which means accumulator of knowledge.
First goal was project simplification in Jakarta Turbine, but has later grown to powerful Java based and Java related project now offering tool for developers to comprehend entire project development efforts in short amount of time.
Consists of several objectives like
- Making the build process easy
- Providing a uniform build system
- Providing quality project information
- Providing guidelines for best practices development
- Allowing transparent migration to new features
Each objective detail is shown at projects' official pages.
Starting up with Maven
As it is a tool developed in Java, it requires Java installed at server or hosting.
Latest release of Maven tool can be downloaded from on of mirrors. Once downloaded, it has to be installed
following installation instructions.
To test successful Maven installation, use command mvn --version from shell prompt of server where Maven is installed.
When everything is set correctly, first project can be created following project instructions Every project requires the following phases, steps :
- validate: validate the project is correct and all necessary information is available
- compile: compile the source code of the project
- test: test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
- package: take the compiled code and package it in its distributable format, such as a JAR.
- integration-test: process and deploy the package if necessary into an environment where integration tests can be run
- verify: run any checks to verify the package is valid and meets quality criteria
- install: install the package into the local repository, for use as a dependency in other projects locally
- deploy: done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.
- clean: cleans up artifacts created by prior builds
- site: generates site documentation for this project