Apache Maven is a software project management tool. Based on the project Object Model (POM) concept, project build, reporting, and documentation information is managed through a core description.

Review images

Maven is a Yiddish (interlingua used by Jews) word meaning accumulator of knowledge. It was originally used to simplify the building process for Jakarta Turbine. There are several different projects in the Jakarta Turbine project, and although their Ant build files differ very little, the Jar packages are all on CVS. I wanted to find a standard and simple way to build a project that could clearly define what the project consists of and publish project information, while sharing Jar packages between different projects.

Any Java-based project can now be built and managed using Maven. We hope that what we are doing will make the daily work of Java developers easier and make Java projects easier to understand.

The main features

  • A simple project installation process guided by best practices: a new project can be built in a short time.
  • Consistency of approach makes it less time-consuming for new developers to join a project.
  • Excellent dependency management features – automatic updates, closure dependencies (i.e., pass-through dependencies).
  • Can be applied to multiple projects simultaneously.
  • Increasing the number of class libraries and metadata to provide more up-to-date versions of open source projects.
  • Extensible: Ability to write plug-ins in Java or scripting languages.
  • New features can be obtained with little or no configuration.
  • Ant tasks that support dependency management and deployment outside of Maven.
  • Model-based builds: In most cases, Maven can build any member of a project into a predefined output type, such as a Jar package, a War package, or a version based on project metadata without any scripting control.
  • Consistency of project information: If the same metadata is used throughout the build process, Maven can generate a website or PDF document based on the information you want to add and add it to the standard report on the project’s development status.
  • Release and management: Without much configuration, Maven will integrate with your source control systems such as CVS and manage the release of a project based on a specific label. Maven can publish independent output, such as a Jar package, one containing other dependencies and documentation, or a source distribution.
  • Dependency management: Maven encourages the use of a centralized repository of JARS and other dependency resources. You can download any of the Jar packages you need to build from this central repository at any time in your project, much like Perl’s CPAN. This allows Maven users to share Jar packages between projects, and it also encourages cross-project communication, allowing downward compatibility of Jar packages to be addressed.

The development of resources

  • Frequently Asked Questions and Answers (FAQ)
  • Download address
  • Install the sample
  • Books document

The official website: maven.apache.org/ open source address: git-wip-us.apache.org/repos/asf/m…

The related resources
  • Druid is an open source data analysis tool
  • Jsoup: An open source HTML parsing tool for Java
  • Checkstyle: Open source Java coding specification checker