 -----
 Available Plugins
 -----
 Brett Porter
 Jason van Zyl
 Dennis Lundberg
 Olivier Lamy
 Benson Margulies
 Karl-Heinz Marbaise
 -----
 2017-05-05
 -----

~~ 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

Available Plugins

  Maven is - at its heart - a plugin execution framework; all work is done by plugins. Looking for
  a specific goal to execute? This page lists the core plugins and others. There are the build and the reporting
  plugins:

  * <<Build plugins>> will be executed during the build and they should be configured in the <<<\<build/\>>>>
  element from the POM.

  * <<Reporting plugins>> will be executed during the site generation and they should be configured in the
  <<<\<reporting/\>>>> element from the POM. Because the result of a Reporting plugin is part of the generated site,
  Reporting plugins should be both internationalized and localized. You can read more about the
  {{{./localization.html}localization of our plugins}} and how you can help.

  []

* Supported By The Maven Project

  To see the most up-to-date list browse the Maven repository, specifically
  the {{{https://repo.maven.apache.org/maven2/org/apache/maven/plugins/} <<<org/apache/maven/plugins>>>}} subfolder.
  <(Plugins are organized according to a directory structure that resembles the standard Java package naming convention)>

  ~~ TODO: the repository manager should be able to produce a page like this. Ensure all descriptions are in the POM of these plugins.


~~ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
~~ The release dates in this table must follow the ISO-8601 standard: yyyy-MM-dd
~~ See https://maven.apache.org/guides/development/guide-documentation-style.html
~~ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
|| <<Plugin>>                                                  || <<Type*>> || <<Version>> || <<Release Date>> || <<Description>> || <<Source Repository>> || <<Issue Tracking>>
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| <<Core plugins>>                                             |            |              |            | <<Plugins corresponding to default core phases (ie. clean, compile). They may have multiple goals as well.>> | |
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-clean-plugin/} <<<clean>>>}}               | B          | 3.1.0        | 2018-04-14 | Clean up after the build. | {{{https://gitbox.apache.org/repos/asf/maven-clean-plugin.git}Git}} / {{{https://github.com/apache/maven-clean-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MCLEAN}Jira MCLEAN}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-compiler-plugin/} <<<compiler>>>}}         | B          | 3.8.1        | 2019-04-28 | Compiles Java sources. | {{{https://gitbox.apache.org/repos/asf/maven-compiler-plugin.git}Git}} / {{{https://github.com/apache/maven-compiler-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MCOMPILER}Jira MCOMPILER}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-deploy-plugin/} <<<deploy>>>}}             | B          | 3.0.0-M1     | 2018-09-23 | Deploy the built artifact to the remote repository. | {{{https://gitbox.apache.org/repos/asf/maven-deploy-plugin.git}Git}} / {{{https://github.com/apache/maven-deploy-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MDEPLOY}Jira MDEPLOY}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/surefire/maven-failsafe-plugin/} <<<failsafe>>>}}        | B          | 3.0.0-M4     | 2019-11-17 | Run the JUnit integration tests in an isolated classloader. | {{{https://gitbox.apache.org/repos/asf/maven-surefire.git}Git}} / {{{https://github.com/apache/maven-surefire/}GitHub}} | {{{https://issues.apache.org/jira/browse/SUREFIRE}Jira SUREFIRE}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-install-plugin/} <<<install>>>}}           | B          | 3.0.0-M1     | 2018-09-23 | Install the built artifact into the local repository. | {{{https://gitbox.apache.org/repos/asf/maven-install-plugin.git}Git}} / {{{https://github.com/apache/maven-install-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MINSTALL}Jira MINSTALL}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-resources-plugin/} <<<resources>>>}}       | B          | 3.1.0        | 2018-04-23 | Copy the resources to the output directory for including in the JAR. | {{{https://gitbox.apache.org/repos/asf/maven-resources-plugin.git}Git}} / {{{https://github.com/apache/maven-resources-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MRESOURCES}Jira MRESOURCES}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-site-plugin/} <<<site>>>}}                 | B          | 3.9.0        | 2020-03-10 | Generate a site for the current project. | {{{https://gitbox.apache.org/repos/asf/maven-site-plugin.git}Git}} / {{{https://github.com/apache/maven-site-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSITE}Jira MSITE}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/surefire/maven-surefire-plugin/} <<<surefire>>>}}        | B          | 3.0.0-M4     | 2019-11-17 | Run the JUnit unit tests in an isolated classloader. | {{{https://gitbox.apache.org/repos/asf/maven-surefire.git}Git}} / {{{https://github.com/apache/maven-surefire/}GitHub}} | {{{https://issues.apache.org/jira/browse/SUREFIRE}Jira SUREFIRE}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-verifier-plugin/} <<<verifier>>>}}         | B          | 1.1          | 2015-04-14 | Useful for integration tests - verifies the existence of certain conditions. | {{{https://gitbox.apache.org/repos/asf/maven-verifier-plugin.git}Git}} / {{{https://github.com/apache/maven-verifier-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MVERIFIER}Jira MVERIFIER}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| <<Packaging types/tools>>                                    |            |              |            | <<These plugins relate to packaging respective artifact types.>> | |
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-ear-plugin/} <<<ear>>>}}                   | B          | 3.0.2       | 2019-11-11 | Generate an EAR from the current project. | {{{https://gitbox.apache.org/repos/asf/maven-ear-plugin.git}Git}} / {{{https://github.com/apache/maven-ear-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MEAR}Jira MEAR}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-ejb-plugin/} <<<ejb>>>}}                   | B          | 3.0.1        | 2018-05-03 | Build an EJB (and optional client) from the current project. | {{{https://gitbox.apache.org/repos/asf/maven-ejb-plugin.git}Git}} / {{{https://github.com/apache/maven-ejb-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MEJB}Jira MEJB}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-jar-plugin/} <<<jar>>>}}                   | B          | 3.2.0        | 2019-11-03 | Build a JAR from the current project. | {{{https://gitbox.apache.org/repos/asf/maven-jar-plugin.git}Git}} / {{{https://github.com/apache/maven-jar-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MJAR}Jira MJAR}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-rar-plugin/} <<<rar>>>}}                   | B          | 2.4          | 2014-09-08 | Build a RAR from the current project. | {{{https://gitbox.apache.org/repos/asf/maven-rar-plugin.git}Git}} / {{{https://github.com/apache/maven-rar-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MRAR}Jira MRAR}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-war-plugin/} <<<war>>>}}                   | B          | 3.2.3        | 2019-05-23 | Build a WAR from the current project. | {{{https://gitbox.apache.org/repos/asf/maven-war-plugin.git}Git}} / {{{https://github.com/apache/maven-war-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MWAR}Jira MWAR}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-acr-plugin/} <<<app-client/acr>>>}}        | B          | 3.1.0        | 2018-06-19 | Build a JavaEE application client from the current project. | {{{https://gitbox.apache.org/repos/asf/maven-acr-plugin.git}Git}} / {{{https://github.com/apache/maven-acr-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MACR}Jira MACR}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-shade-plugin/} <<<shade>>>}}               | B          | 3.2.3        | 2020-04-13 | Build an Uber-JAR from the current project, including dependencies. | {{{https://gitbox.apache.org/repos/asf/maven-shade-plugin.git}Git}} / {{{https://github.com/apache/maven-shade-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSHADE}Jira MSHADE}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-source-plugin/} <<<source>>>}}             | B          | 3.2.1        | 2019-12-21 | Build a source-JAR from the current project. | {{{https://gitbox.apache.org/repos/asf/maven-source-plugin.git}Git}} / {{{https://github.com/apache/maven-source-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSOURCES}Jira MSOURCES}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-jlink-plugin/} <<<jlink>>>}}               | B          | 3.0.0-alpha-1 | 2017-09-09 | Build Java Run Time Image. | {{{https://gitbox.apache.org/repos/asf/maven-jlink-plugin.git}Git}} / {{{https://github.com/apache/maven-jlink-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MJLINK}Jira MJLINK}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-jmod-plugin/} <<<jmod>>>}}                 | B          | 3.0.0-alpha-1 | 2017-09-17 | Build Java JMod files. | {{{https://gitbox.apache.org/repos/asf/maven-jmod-plugin.git}Git}} / {{{https://github.com/apache/maven-jmod-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MJMOD}Jira MJMOD}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| <<Reporting plugins>>                                        |            |              |            | <<Plugins which generate reports, are configured as reports in the POM and run under the site generation lifecycle.>> | |
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-changelog-plugin/} <<<changelog>>>}}       | R          | 2.3          | 2014-06-24 | Generate a list of recent changes from your SCM. | {{{https://gitbox.apache.org/repos/asf/maven-changelog-plugin.git}Git}} / {{{https://github.com/apache/maven-changelog-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MCHANGELOG}Jira MCHANGELOG}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-changes-plugin/} <<<changes>>>}}           | B+R        | 2.12.1       | 2016-11-01 | Generate a report from an issue tracker or a change document. | {{{https://gitbox.apache.org/repos/asf/maven-changes-plugin.git}Git}} / {{{https://github.com/apache/maven-changes-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MCHANGES}Jira MCHANGES}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-checkstyle-plugin/} <<<checkstyle>>>}}     | B+R        | 3.1.1        | 2020-02-08 | Generate a Checkstyle report. | {{{https://gitbox.apache.org/repos/asf/maven-checkstyle-plugin.git}Git}} / {{{https://github.com/apache/maven-checkstyle-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MCHECKSTYLE}Jira MCHECKSTYLE}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-doap-plugin/} <<<doap>>>}}                 | B          | 1.2          | 2015-03-17 | Generate a Description of a Project (DOAP) file from a POM. | {{{https://gitbox.apache.org/repos/asf/maven-doap-plugin.git}Git}} / {{{https://github.com/apache/maven-doap-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MDOAP}Jira MDOAP}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-docck-plugin/} <<<docck>>>}}               | B          | 1.1          | 2015-04-03 | Documentation checker plugin. | {{{https://gitbox.apache.org/repos/asf/maven-docck-plugin.git}Git}} / {{{https://github.com/apache/maven-docck-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MDOCCK}Jira MDOCCK}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-javadoc-plugin/} <<<javadoc>>>}}           | B+R        | 3.2.0        | 2020-03-16 | Generate Javadoc for the project. | {{{https://gitbox.apache.org/repos/asf/maven-javadoc-plugin.git}Git}} / {{{https://github.com/apache/maven-javadoc-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MJAVADOC}Jira MJAVADOC}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-jdeps-plugin/} <<<jdeps>>>}}               | B          | 3.1.2        | 2019-06-12 | Run JDK's JDeps tool on the project. | {{{https://gitbox.apache.org/repos/asf/maven-jdeps-plugin.git}Git}} / {{{https://github.com/apache/maven-jdeps-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MJDEPS}Jira MJDEPS}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/jxr/maven-jxr-plugin/} <<<jxr>>>}}                       | R          | 3.0.0        | 2018-09-25 | Generate a source cross reference. | {{{https://gitbox.apache.org/repos/asf/maven-jxr.git}Git}} / {{{https://github.com/apache/maven-jxr/}GitHub}} | {{{https://issues.apache.org/jira/browse/JXR}Jira JXR}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-linkcheck-plugin/} <<<linkcheck>>>}}       | R          | 1.2          | 2014-10-08 | Generate a Linkcheck report of your project's documentation. | {{{https://gitbox.apache.org/repos/asf/maven-linkcheck-plugin.git}Git}} / {{{https://github.com/apache/maven-linkcheck-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MLINKCHECK}Jira MLINKCHECK}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-pmd-plugin/} <<<pmd>>>}}                   | B+R        | 3.13.0       | 2020-01-25 | Generate a PMD report. | {{{https://gitbox.apache.org/repos/asf/maven-pmd-plugin.git}Git}} / {{{https://github.com/apache/maven-pmd-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MPMD}Jira MPMD}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-project-info-reports-plugin/} <<<project-info-reports>>>}} | R | 3.1.0 | 2020-05-23 | Generate standard project reports. | {{{https://gitbox.apache.org/repos/asf/maven-project-info-reports-plugin.git}Git}} / {{{https://github.com/apache/maven-project-info-reports-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MPIR}Jira MPIR}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/surefire/maven-surefire-report-plugin/} <<<surefire-report>>>}} | R   | 3.0.0-M4     | 2019-11-17 | Generate a report based on the results of unit tests. | {{{https://gitbox.apache.org/repos/asf/maven-surefire.git}Git}} / {{{https://github.com/apache/maven-surefire/}GitHub}} | {{{https://issues.apache.org/jira/browse/SUREFIRE}Jira SUREFIRE}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| <<Tools>>                                                    |            |              |            | <<These are miscellaneous tools available through Maven by default.>> | |
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-antrun-plugin/} <<<antrun>>>}}             | B          | 3.0.0        | 2020-04-15 | Run a set of ant tasks from a phase of the build. | {{{https://gitbox.apache.org/repos/asf/maven-antrun-plugin.git}Git}} / {{{https://github.com/apache/maven-antrun-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MANTRUN}Jira MANTRUN}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/archetype/maven-archetype-plugin/} <<<archetype>>>}}     | B          | 3.1.2        | 2019-08-22 | Generate a skeleton project structure from an archetype. | {{{https://gitbox.apache.org/repos/asf/maven-archetype.git}Git}} / {{{https://github.com/apache/maven-archetype/}GitHub}} | {{{https://issues.apache.org/jira/browse/ARCHETYPE}Jira ARCHETYPE}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-assembly-plugin/} <<<assembly>>>}}         | B          | 3.3.0        | 2020-04-30 | Build an assembly (distribution) of sources and/or binaries. | {{{https://gitbox.apache.org/repos/asf/maven-assembly-plugin.git}Git}} / {{{https://github.com/apache/maven-assembly-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MASSEMBLY}Jira MASSEMBLY}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-dependency-plugin/} <<<dependency>>>}}     | B+R        | 3.1.2        | 2020-03-07 | Dependency manipulation (copy, unpack) and analysis. | {{{https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git}Git}} / {{{https://github.com/apache/maven-dependency-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MDEP}Jira MDEP}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/enforcer/maven-enforcer-plugin/} <<<enforcer>>>}}        | B          | 3.0.0-M3     | 2019-11-23 | Environmental constraint checking (Maven Version, JDK etc), User Custom Rule Execution. | {{{https://gitbox.apache.org/repos/asf/maven-enforcer.git}Git}} / {{{https://github.com/apache/maven-enforcer/}GitHub}} | {{{https://issues.apache.org/jira/browse/MENFORCER}Jira MENFORCER}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-gpg-plugin/} <<<gpg>>>}}                   | B          | 1.6          | 2015-01-19 | Create signatures for the artifacts and poms. | {{{https://gitbox.apache.org/repos/asf/maven-gpg-plugin.git}Git}} / {{{https://github.com/apache/maven-gpg-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MGPG}Jira MGPG}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-help-plugin/} <<<help>>>}}                 | B          | 3.2.0        | 2019-04-16 | Get information about the working environment for the project. | {{{https://gitbox.apache.org/repos/asf/maven-help-plugin.git}Git}} / {{{https://github.com/apache/maven-help-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MPH}Jira MPH}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-invoker-plugin/} <<<invoker>>>}}           | B+R        | 3.2.1        | 2019-09-13 | Run a set of Maven projects and verify the output. | {{{https://gitbox.apache.org/repos/asf/maven-invoker-plugin.git}Git}} / {{{https://github.com/apache/maven-invoker-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MINVOKER}Jira MINVOKER}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-jarsigner-plugin/} <<<jarsigner>>>}}       | B          | 3.0.0        | 2018-11-06 | Signs or verifies project artifacts. | {{{https://gitbox.apache.org/repos/asf/maven-jarsigner-plugin.git}Git}} / {{{https://github.com/apache/maven-jarsigner-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MJARSIGNER}Jira MJARSIGNER}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-jdeprscan-plugin/} <<<jdeprscan>>>}}       | B          | 3.0.0-alpha-1| 2017-11-15 | Run JDK's JDeprScan tool on the project. | {{{https://gitbox.apache.org/repos/asf/maven-jdeprscan-plugin.git}Git}} / {{{https://github.com/apache/maven-jdeprscan-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MJDEPRSCAN}Jira MJDEPRSCAN}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-patch-plugin/} <<<patch>>>}}               | B          | 1.2          | 2015-03-09 | Use the gnu patch tool to apply patch files to source code. | {{{https://gitbox.apache.org/repos/asf/maven-patch-plugin.git}Git}} / {{{https://github.com/apache/maven-patch-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MPATCH}Jira MPATCH}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-pdf-plugin/} <<<pdf>>>}}                   | B          | 1.4          | 2017-12-28 | Generate a PDF version of your project's documentation. | {{{https://gitbox.apache.org/repos/asf/maven-pdf-plugin.git}Git}} / {{{https://github.com/apache/maven-pdf-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MPDF}Jira MPDF}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugin-tools/maven-plugin-plugin/} <<<plugin>>>}}        | B+R        | 3.6.0        | 2018-11-01 | Create a Maven plugin descriptor for any mojos found in the source tree, to include in the JAR. | {{{https://gitbox.apache.org/repos/asf/maven-plugin-tools.git}Git}} / {{{https://github.com/apache/maven-plugin-tools/}GitHub}} | {{{https://issues.apache.org/jira/browse/MPLUGIN}Jira MPLUGIN}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-release-plugin/} <<<release>>>}}           | B          | 3.0.0-M1     | 2019-12-08 | Release the current project - updating the POM and tagging in the SCM. | {{{https://gitbox.apache.org/repos/asf/maven-release.git}Git}} / {{{https://github.com/apache/maven-release/}GitHub}} | {{{https://issues.apache.org/jira/browse/MRELEASE}Jira MRELEASE}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-remote-resources-plugin/} <<<remote-resources>>>}}| B   | 1.7.0        | 2020-01-21 | Copy remote resources to the output directory for inclusion in the artifact. | {{{https://gitbox.apache.org/repos/asf/maven-remote-resources-plugin.git}Git}} / {{{https://github.com/apache/maven-remote-resources-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MRRESOURCES}Jira MRRESOURCES}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/scm/maven-scm-plugin/} <<<scm>>>}}                       | B          | 1.11.2       | 2019-03-21 | Execute SCM commands for the current project. | {{{https://gitbox.apache.org/repos/asf/maven-scm.git }Git}} / {{{https://github.com/apache/maven-scm/}GitHub}} | {{{https://issues.apache.org/jira/browse/SCM}Jira SCM}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-scm-publish-plugin/} <<<scm-publish>>>}}   | B          | 3.0.0        | 2018-01-29 | Publish your Maven website to a scm location. | {{{https://gitbox.apache.org/repos/asf/maven-scm-publish-plugin.git}Git}} / {{{https://github.com/apache/maven-scm-publish-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSCMPUB}Jira MSCMPUB}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-stage-plugin/} <<<stage>>>}}               | B          | 1.0          | 2015-03-03 | Assists with release staging and promotion. | {{{https://gitbox.apache.org/repos/asf/maven-stage-plugin.git}Git}} / {{{https://github.com/apache/maven-stage-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MSTAGE}Jira MSTAGE}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+
| {{{/plugins/maven-toolchains-plugin/} <<<toolchains>>>}}     | B          | 3.0.0        | 2019-06-16 | Allows to share configuration across plugins. | {{{https://gitbox.apache.org/repos/asf/maven-toolchains-plugin.git}Git}} / {{{https://github.com/apache/maven-toolchains-plugin/}GitHub}} | {{{https://issues.apache.org/jira/browse/MTOOLCHAINS}Jira MTOOLCHAINS}}
*--------------------------------------------------------------+------------+--------------+------------+------------------+------------------------+--------------------+

  \* <<B>>uild or <<R>>eporting plugin

  There are also some sandbox plugins into our {{{https://svn.apache.org/repos/asf/maven/sandbox/trunk/plugins}source repository}}.
  
  Previous archived versions of plugins reference documentations are {{{../plugins-archives/}located here}}. 

* Retired

*--------------------------------------------------------------+------------+--------------+-------------------+------------------+
|| <<Plugin>>                                                  || <<Type*>> || <<Version>> || <<Retired Date>> || <<Description>>
*--------------------------------------------------------------+------------+--------------+-------------------+------------------+
| {{{/plugins/maven-ant-plugin/} <<<ant>>>}}                   | B          | 2.4          | 2019-06-02        | Generate an Ant build file for the project. 
*--------------------------------------------------------------+------------+--------------+-------------------+------------------+
| {{{/plugins/maven-eclipse-plugin/} <<<eclipse>>>}}           | B          | 2.10         | 2015-10-07        | Generate an Eclipse project files for the current project.
*--------------------------------------------------------------+------------+--------------+-------------------+------------------+
| {{{/plugins/maven-idea-plugin/} <<<idea>>>}}                 | B          | 2.2.1        | 2013-07-26        | Create/update an IDEA workspace for the current project (individual modules are created as IDEA modules)
*--------------------------------------------------------------+------------+--------------+-------------------+------------------+
| {{{/plugins/maven-one-plugin/} <<<one>>>}}                   | B          | 1.3          | 2013-07-30        | A plugin for interacting with legacy Maven 1.x repositories and builds.
*--------------------------------------------------------------+------------+--------------+-------------------+------------------+
| {{{/plugins/maven-reactor-plugin/} <<<reactor>>>}}           | B          | 1.1          | 2014-03-24        | Build a subset of interdependent projects in a reactor (Maven 2 only).
*--------------------------------------------------------------+------------+--------------+-------------------+------------------+
| {{{/plugins/maven-repository-plugin/} <<<repository>>>}}     | B          | 2.4          | 2019-04-30        | Plugin to help with repository-based tasks.
*--------------------------------------------------------------+------------+--------------+-------------------+------------------+

* Outside The Maven Land

** At MojoHaus (formerly known as {codehaus.org})

  There are also {{{https://www.mojohaus.org/plugins.html}many plug-ins}} available at 
  the {{{https://github.com/mojohaus} MojoHaus}} project at GitHub.

  Here are a few common ones:

*---------------------------------------------------------------------------------+----------------------------------+
|| <<Plugin>> (see {{{https://www.mojohaus.org/plugins.html}complete list with version}}) || <<Description>>
*---------------------------------------------------------------------------------+----------------------------------+
| {{{https://www.mojohaus.org/animal-sniffer/animal-sniffer-maven-plugin/} <<<animal-sniffer>>>}}| Build signatures of APIs (JDK for example) and checks your classes against them.
*---------------------------------------------------------------------------------+----------------------------------+
| {{{https://www.mojohaus.org/build-helper-maven-plugin/} <<<build-helper>>>}}    | Attach extra artifacts and source folders to build.
*---------------------------------------------------------------------------------+----------------------------------+
| {{{https://www.mojohaus.org/castor-maven-plugin/} <<<castor>>>}}                | Generate sources from an XSD using Castor.
*---------------------------------------------------------------------------------+----------------------------------+
| {{{https://www.mojohaus.org/clirr-maven-plugin/} <<<clirr>>>}}                  | Compare binaries or sources for compatibility using Clirr |
*---------------------------------------------------------------------------------+----------------------------------+
| {{{https://www.mojohaus.org/javacc-maven-plugin/} <<<javacc>>>}}                | Generate sources from a JavaCC grammar.
*---------------------------------------------------------------------------------+----------------------------------+
| {{{https://www.mojohaus.org/jdepend-maven-plugin/} <<<jdepend>>>}}              | Generate a report on code metrics using JDepend.
*---------------------------------------------------------------------------------+----------------------------------+
| {{{https://maven-nar.github.io/} <<<nar-maven-plugin>>>}}                       | Compiles C, C++, Fortran for different architectures.
*---------------------------------------------------------------------------------+----------------------------------+
| {{{https://www.mojohaus.org/maven-native/native-maven-plugin/} <<<native>>>}}   | Compiles C and C++ code with native compilers.
*---------------------------------------------------------------------------------+----------------------------------+
| {{{https://www.mojohaus.org/sql-maven-plugin/} <<<sql>>>}}                      | Executes SQL scripts from files or inline.
*---------------------------------------------------------------------------------+----------------------------------+
| {{{https://www.mojohaus.org/taglist-maven-plugin/} <<<taglist>>>}}              | Generate a list of tasks based on tags in your code.
*---------------------------------------------------------------------------------+----------------------------------+
| {{{https://www.mojohaus.org/versions-maven-plugin/} <<<versions>>>}}            | Manage versions of your project, its modules, dependencies and plugins.
*---------------------------------------------------------------------------------+----------------------------------+

** Misc

  A number of other projects provide their own Maven plugins. This includes:

*----------------------------------------------------------------------------+----------------+-----------------------+
|| <<Plugin>>                                                                || <<Maintainer>> || <<Description>>
*----------------------------------------------------------------------------+----------------+-----------------------+
| {{{https://codehaus-cargo.github.io/} <<<cargo>>>}}                  | {{{https://codehaus-cargo.github.io/}Cargo Project}} | Start/stop/configure J2EE containers and deploy to them.
*----------------------------------------------------------------------------+----------------+-----------------------+
| {{{https://confluence.atlassian.com/display/CLOVER/Clover-for-Maven+2} <<<clover>>>}} | {{{https://www.atlassian.com/software/clover/}Atlassian Clover}} | Generate a Clover report.
*----------------------------------------------------------------------------+----------------+-----------------------+
| {{{https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html} <<<jetty>>>}}| {{{https://www.eclipse.org/jetty/}Jetty Project}} | Jetty Run a Jetty container for rapid webapp development.
*----------------------------------------------------------------------------+----------------+-----------------------+
| {{{http://www.triemax.com/products/jalopy/manual/plugin-maven.html} <<<jalopy>>>}} | {{{http://www.triemax.com/}Triemax}} | Use Jalopy to format your source code.
*----------------------------------------------------------------------------+----------------+-----------------------+
| {{{https://creadur.apache.org/rat/} <<<rat>>>}}                             | {{{https://creadur.apache.org/}Apache Creadur Project}} | Release Audit Tool (RAT) to verify files.
*----------------------------------------------------------------------------+----------------+-----------------------+
| {{{https://geronimo.apache.org/maven/genesis/plugins/tools-maven-plugin/index.html} <<<Genesis Plugins>>>}} | {{{https://geronimo.apache.org/}Apache Geronimo Project}} | Verify legal files in artifacts.
*----------------------------------------------------------------------------+----------------+-----------------------+
| {{{https://tomcat.apache.org/maven-plugin.html} <<<Apache Tomcat>>>}}| {{{https://tomcat.apache.org/maven-plugin.html}Apache Tomcat Project}} | Run an Apache Tomcat container for rapid webapp development.
*----------------------------------------------------------------------------+----------------+-----------------------+
| {{{https://jeremylong.github.io/DependencyCheck/} <<<OWASP dependency-check>>>}} | {{{https://www.owasp.org/index.php/OWASP_Dependency_Check}OWASP Dependency-check Project}} | Run OWASP Dependency-Check, a utility that identifies project dependencies and checks if there are any known, publicly disclosed, vulnerabilities..
*----------------------------------------------------------------------------+----------------+-----------------------+

* Resources

  [[1]] {{{../guides/mini/guide-configuring-plugins.html}Guide to Configuring Plugins}}

  []
