The following are the key features of Maven in a nutshell:
Feature | Description |
---|---|
Model based builds | Maven is able to build any number of projects into predefined output types such as a JAR, WAR, or distribution based on metadata about the project, without any need to do any scripting in most cases. |
Coherent site of project information | Using the same metadata as for the build process, Maven is able to generate a web site or PDF including any documentation you care to add, and adds to that standard reports about the state of development of the project. Examples of this information can be seen at the bottom of the left-hand navigation of this site under the "Project Information" and "Project Reports" submenus. |
Release management and distribution publication | Without much additional configuration, Maven will integrate with your source control system such as CVS and manage the release of a project based on a certain tag. It can also publish this to a distribution location for use by other projects. Maven is able to publish individual outputs such as a JAR, an archive including other dependencies and documentation, or as a source distribution. |
Dependency management | Maven encourages the use of a central repository of JARs and other dependencies. Maven comes with a mechanism that your project's clients can use to download any JARs required for building your project from a central JAR repository much like Perl's CPAN. This allows users of Maven to reuse JARs across projects and encourages communication between projects to ensure backward compatibility issues are dealt with. |
Gump integration | Integration with Gump. For those who are not familiar with Gump it is a tool used at Apache to help projects maintain backward compatibility with their clients. If you have a Maven project descriptor then you can easily participate in nightly Gump builds that will help your project stay abreast of the impact your changes actually have in Java developer community. We are working on our own massive build tool but integration with Gump comes at no cost to Maven users. |
Curious who else is using Maven? A few of the many projects doing so can be seen at the Powered by Maven page.
For more information on Maven's objectives, see What is Maven?.
If you currently use Ant, you might be interested to read about Maven from an Ant perspective.