| ------ |
| Maven Features |
| ------ |
| Jason van Zyl |
| ------ |
| 2005-10-12 |
| ------ |
| |
| ~~ Licensed to the Apache Software Foundation (ASF) under one |
| ~~ or more contributor license agreements. See the NOTICE file |
| ~~ distributed with this work for additional information |
| ~~ regarding copyright ownership. The ASF licenses this file |
| ~~ to you under the Apache License, Version 2.0 (the |
| ~~ "License"); you may not use this file except in compliance |
| ~~ with the License. You may obtain a copy of the License at |
| ~~ |
| ~~ http://www.apache.org/licenses/LICENSE-2.0 |
| ~~ |
| ~~ Unless required by applicable law or agreed to in writing, |
| ~~ software distributed under the License is distributed on an |
| ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ~~ KIND, either express or implied. See the License for the |
| ~~ specific language governing permissions and limitations |
| ~~ under the License. |
| |
| ~~ NOTE: For help with the syntax of this file, see: |
| ~~ https://maven.apache.org/doxia/references/apt-format.html |
| |
| Feature Summary |
| |
| The following are the key features of Maven in a nutshell: |
| |
| * Simple project setup that follows best practices - get a new project or module started in seconds |
| |
| * Consistent usage across all projects - means no ramp up time for new developers coming onto a project |
| |
| * Superior dependency management including automatic updating, dependency closures (also known as transitive dependencies) |
| |
| * Able to easily work with multiple projects at the same time |
| |
| * A {{{/repository/}large and growing repository of libraries and metadata}} to use out of the box, and arrangements in place with the largest Open Source projects for |
| real-time availability of their latest releases |
| |
| * Extensible, with the ability to easily {{{/plugin-developers/}write plugins}} in Java or scripting languages |
| |
| * Instant access to new features with little or no extra configuration |
| |
| * Ant tasks for dependency management and deployment outside of Maven |
| |
| * 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 |
| the 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 Subversion or Git) 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 that backward compatibility issues are |
| dealt with. |
| |
| [] |
| |
| ~~ this needs to be greatly expanded and is too detailed here ... jvz |