Maven - Maven Introduction - maven tutorial



What is Maven?

  • Maven is a powerful project management tool that is based on POM (project object model). It is used for projects build, dependency and documentation.
  • learn maven tutorial - apache maven  - Apache Maven example programs

    learn maven tutorial - apache maven - Apache Maven example programs

  • It shortens the build process like ANT. But it is much advanced than ANT.
  • In case of multiple development teams environment, Maven can set-up the way to work as per standards in a very short time.
  • As most of the project setups are simple and reusable, Maven makes life of developer easy while creating reports, checks, build and testing automation setups.
  • Maven provides developers ways to manage the following −
    • Builds
    • Documentation
    • Reporting
    • Dependencies
    • SCMs
    • Releases
    • Distribution
    • Mailing list
    learn maven tutorial - what is maven - Apache Maven example programs

    learn maven tutorial - what is maven - Apache Maven example programs

  • To summarize, Maven simplifies and standardizes the project build process.
  • It handles compilation, distribution, documentation, team collaboration and other tasks seamlessly.
  • Maven increases reusability and takes care of most of the build related tasks.

Maven Evolution

  • 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 collaboration of teams.
maven tutorial tags : apache maven , maven repository , maven central

Convention over Configuration

  • Maven uses Convention over Configuration, which means developers are not required to generate build process themselves.
  • Developers do not have to mention each and every configuration detail. Maven provides sensible default behavior for projects.
  • When a Maven project is created, Maven creates default project structure.
  • Developer is only required to place files accordingly and he/she need not to define any configuration in pom.xml.
  • As an example, following table shows the default values for project source code files, resource files and other configurations. Assuming, ${basedir}denotes the project location −
Item Default
source code ${basedir}/src/main/java
Resources ${basedir}/src/main/resources
Tests ${basedir}/src/test
Complied byte code ${basedir}/target
distributable JAR ${basedir}/target/classes
  • In order to build the project, Maven offers developers with options to mention life-cycle goals and project dependencies.
  • Most of the project management and build related tasks are maintained by Maven plugins.
  • Developers can build any given Maven project without the need to understand how the individual plugins work.

Objective

  • The primary goal of Maven is to provide developer with the following −
    • A comprehensive model for projects, which is reusable, maintainable, and easier to comprehend.
    • learn maven tutorial - maven project life cycle - Apache Maven example programs

      learn maven tutorial - maven project life cycle - Apache Maven example programs

    • Plugins or tools that interact with this declarative model.
  • Maven project structure and contents are declared in an xml file, pom.xml, referred as Project Object Model (POM), which is the fundamental unit of the entire Maven system.

Features of Maven

  • Simple project setup that follows best practices.
  • Consistent usage across all projects.
  • Dependency management including automatic updating.
  • A large and growing repository of libraries.
  • Extensible, with the ability to easily write plugins in Java or scripting languages.
  • Instant access to new features with little or no extra configuration.
  • Model-based builds − Maven is able to build any number of projects into predefined output types such as jar, war, metadata.
  • Coherent site of project information − Using the same metadata as per the build process, maven is able to generate a website and a PDF including complete documentation.
  • Release management and distribution publication − Without additional configuration, maven will integrate with your source control system such as CVS and manages the release of a project.
  • Backward Compatibility − You can easily port the multiple modules of a project into Maven 3 from older versions of Maven. It can support the older versions also.
  • Automatic parent versioning − No need to specify the parent in the sub module for maintenance.
  • Parallel builds − It analyzes the project dependency graph and enables you to build schedule modules in parallel. Using this, you can achieve the performance improvements of 20-50%.
  • Better Error and Integrity Reporting − Maven improved error reporting, and it provides you with a link to the Maven wiki page where you will get full description of the error.

How Maven works :
learn maven tutorial - what is maven - maven example programs

learn maven tutorial - what is maven - maven example programs

Maven commands - Maven Cheatsheet :

learn maven tutorial - maven project-apache maven commands shortcuts - Apache Maven example programs

learn maven tutorial - apache maven - maven project - apache maven commands shortcuts - Apache Maven example programs

Maven - Archetype:

learn maven tutorial - what is archetype - maven example programs

learn maven tutorial - what is archetype - maven example programs

Maven - plugins:

learn maven tutorial - what is plugin - maven example programs

learn maven tutorial - what is plugin - maven example programs

Maven - Goals :

learn maven tutorial - what is goals - maven example programs

learn maven tutorial - what is goals - maven example programs

What is POM :

learn maven tutorial - What is POM - maven example programs

learn maven tutorial - What is POM - maven example programs


Wikitechy provides an indepth knowledge on the below maven tutorial items such as maven download , maven install , maven goals , maven build , maven commands , maven plugin , maven search , maven eclipse , maven deploy , eclipse maven , maven junit , maven java , hibernate maven , maven project , java maven , maven version , maven proxy , maven 2 , maven pom , maven eclipse plugin , maven java version , maven properties , maven install windows , how to create maven project in eclipse , eclipse maven plugin , maven dependencies , what is maven in java , maven apache , maven project structure , how to install maven in eclipse

Related Searches to Maven Introduction