Apache Maven Tutorial

As described by its official Start Guide:

Maven is an attempt to apply patterns to a project’s build infrastructure in order to promote comprehension and productivity by providing a clear path in the use of best practices.

Maven is essentially a project management and comprehension tool and as such provides a way to help with managing:

  • Builds
  • Documentation
  • Reporting
  • Dependencies
  • Version Control
  • Releases
  • Distribution

Hence, supporting developers across many phases of the whole Software Development Life Cycle (SDLC).

This philosophy is part of Maven in its core: i.e., the word maven means accumulator of knowledge (in Yiddish).

Maven is about the application of patterns in order to achieve an infrastructure which displays the characteristics of visibility, reusability, maintainability, and comprehensibility.

  • Maven was born of the very practical desire to make several projects work in the same way, as stated by the official Maven philosophy statement.
  • Developers could freely move between projects, knowing clearly how they all worked by understanding how one of them worked
  • The same idea extends to testing, generating documentation, generating metrics and reports, and deploying