 ------
 Introduction
 ------
 Vincent Siveton
 ------
 2008-07-15
 ------

~~ 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:
~~ http://maven.apache.org/doxia/references/apt-format.html

Maven Plugin Tools

 The Maven Plugin Tools contains the necessary tools to play with Maven Plugins.

* Overview

*-----------------------------------------------------------------------------+---------------------------------------------------------+
|| <<Maven Plugin Tools>>                                                     || <<Overview>>
*-----------------------------------------------------------------------------+---------------------------------------------------------+
| {{{../plugins/maven-plugin-plugin/index.html}maven-plugin-plugin}}          | Maven Plugin which generates a descriptors, help, and plugin report.
*-----------------------------------------------------------------------------+---------------------------------------------------------+
| {{{./maven-plugin-tools-api/index.html}maven-plugin-tools-api}}             | API to extract Plugin information.
*-----------------------------------------------------------------------------+---------------------------------------------------------+
| \ \ {{{./maven-plugin-tools-beanshell/index.html}maven-plugin-tools-beanshell}} | Descriptor extractor for plugins written in Beanshell.
*-----------------------------------------------------------------------------+---------------------------------------------------------+
| \ \ {{{./maven-plugin-tools-java/index.html}maven-plugin-tools-java}}           | Descriptor extractor for plugins written in Java.
*-----------------------------------------------------------------------------+---------------------------------------------------------+
| \ \ {{{./maven-plugin-tools-ant/index.html}maven-plugin-tools-ant}}             | Descriptor extractor for plugins written in Ant.
*-----------------------------------------------------------------------------+---------------------------------------------------------+
| {{{./maven-plugin-tools-javadoc/index.html}maven-plugin-tools-javadoc}}     | Provides the support of Mojo Javadoc Tags in the Javadoc Tool.
*-----------------------------------------------------------------------------+---------------------------------------------------------+
| {{{./maven-plugin-tools-model/index.html}maven-plugin-tools-model}}         | API to play with the Maven Plugin Metadata Model for script-based plugins.
*-----------------------------------------------------------------------------+---------------------------------------------------------+
