CINXE.COM
Maven Plugin Tools – Introduction
<!DOCTYPE html> <!-- | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src\site\xdoc/index.xml at 2024-10-22 | Rendered using Apache Maven Fluido Skin 1.12.0 --> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" /> <meta name="author" content="Vincent Siveton" /> <meta name="author" content="Hervé Boutemy" /> <title>Maven Plugin Tools – Introduction</title> <link rel="stylesheet" href="./css/apache-maven-fluido-1.12.0.min.css" /> <link rel="stylesheet" href="./css/site.css" /> <link rel="stylesheet" href="./css/print.css" media="print" /> <script src="./js/apache-maven-fluido-1.12.0.min.js"></script> <!-- Matomo --> <script> var _paq = window._paq = window._paq || []; _paq.push(['disableCookies']); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://analytics.apache.org/"; _paq.push(['setTrackerUrl', u+'/matomo.php']); _paq.push(['setSiteId', '3']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Matomo Code --> </head> <body> <div class="container-fluid container-fluid-top"> <header> <div id="banner"> <div class="pull-left"><a href="https://www.apache.org/" id="bannerLeft"><img src="../images/apache-maven-project.png" style="" /></a></div> <div class="pull-right"><a href="../" id="bannerRight"><img src="../images/maven-logo-black-on-white.png" style="" /></a></div> <div class="clear"><hr/></div> </div> <div id="breadcrumbs"> <ul class="breadcrumb"> <li><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> <li><a href="../index.html" title="Maven">Maven</a><span class="divider">/</span></li> <li><a href="index.html" title="Plugin Tools">Plugin Tools</a><span class="divider">/</span></li> <li class="active ">Introduction <a href="https://github.com/apache/maven-plugin-tools/tree/maven-plugin-tools-3.15.1/src\site\xdoc/index.xml"><img src="./images/accessories-text-editor.png" title="Edit" /></a></li> <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-10-22</li> <li id="projectVersion" class="pull-right">Version: 3.15.1</li> </ul> </div> </header> <div class="row-fluid"> <header id="leftColumn" class="span2"> <nav class="well sidebar-nav"> <ul class="nav nav-list"> <li class="nav-header">Overview</li> <li class="active"><a><span class="none"></span>Introduction</a></li> <li><a href="apidocs/index.html" title="JavaDocs"><span class="none"></span>JavaDocs</a></li> <li><a href="xref/index.html" title="Source Xref"><span class="none"></span>Source Xref</a></li> <li><a href="https://www.apache.org/licenses/" class="externalLink" title="License"><span class="none"></span>License</a></li> <li><a href="download.html" title="Download"><span class="none"></span>Download</a></li> <li class="nav-header">Examples</li> <li><a href="maven-plugin-plugin/examples/using-annotations.html" title="Using Java5 annotations"><span class="none"></span>Using Java5 annotations</a></li> <li><a href="maven-plugin-plugin/examples/generate-descriptor.html" title="Configuring Generation of Plugin Descriptor"><span class="none"></span>Configuring Generation of Plugin Descriptor</a></li> <li><a href="maven-plugin-report-plugin/examples/generate-report.html" title="Configuring Generation of Plugin Documentation"><span class="none"></span>Configuring Generation of Plugin Documentation</a></li> <li><a href="maven-plugin-plugin/examples/generate-help.html" title="Configuring Generation of HelpMojo"><span class="none"></span>Configuring Generation of HelpMojo</a></li> <li class="nav-header">Modules</li> <li><a href="maven-plugin-tools-generators/index.html" title="Maven Plugin Tools Generators"><span class="none"></span>Maven Plugin Tools Generators</a></li> <li><a href="maven-plugin-tools-api/index.html" title="Maven Plugin Tools Extractor API"><span class="none"></span>Maven Plugin Tools Extractor API</a></li> <li><a href="maven-plugin-tools-java/index.html" title="Maven Plugin Tool for Java with Javadoc Tags"><span class="none"></span>Maven Plugin Tool for Java with Javadoc Tags</a></li> <li><a href="maven-plugin-tools-annotations/index.html" title="Maven Plugin Tool for Java with Annotations"><span class="none"></span>Maven Plugin Tool for Java with Annotations</a></li> <li><a href="maven-plugin-annotations/index.html" title="Maven Plugin Tools Java Annotations"><span class="none"></span>Maven Plugin Tools Java Annotations</a></li> <li><a href="maven-script/index.html" title="Maven Script Mojo Support (deprecated)"><span class="none"></span>Maven Script Mojo Support (deprecated)</a></li> <li><a href="maven-plugin-plugin/index.html" title="Maven Plugin Plugin"><span class="none"></span>Maven Plugin Plugin</a></li> <li><a href="maven-plugin-report-plugin/index.html" title="Maven Plugin Report Plugin"><span class="none"></span>Maven Plugin Report Plugin</a></li> <li class="nav-header">Project Documentation</li> <li><a href="project-info.html" title="Project Information"><span class="icon-chevron-down"></span>Project Information</a> <ul class="nav nav-list"> <li class="active"><a><span class="none"></span>About</a></li> <li><a href="summary.html" title="Summary"><span class="none"></span>Summary</a></li> <li><a href="dependency-info.html" title="Maven Coordinates"><span class="none"></span>Maven Coordinates</a></li> <li><a href="modules.html" title="Project Modules"><span class="none"></span>Project Modules</a></li> <li><a href="team.html" title="Team"><span class="none"></span>Team</a></li> <li><a href="scm.html" title="Source Code Management"><span class="none"></span>Source Code Management</a></li> <li><a href="issue-management.html" title="Issue Management"><span class="none"></span>Issue Management</a></li> <li><a href="mailing-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a></li> <li><a href="dependency-management.html" title="Dependency Management"><span class="none"></span>Dependency Management</a></li> <li><a href="dependency-convergence.html" title="Dependency Convergence"><span class="none"></span>Dependency Convergence</a></li> <li><a href="ci-management.html" title="CI Management"><span class="none"></span>CI Management</a></li> <li><a href="plugin-management.html" title="Plugin Management"><span class="none"></span>Plugin Management</a></li> <li><a href="plugins.html" title="Plugins"><span class="none"></span>Plugins</a></li> <li><a href="distribution-management.html" title="Distribution Management"><span class="none"></span>Distribution Management</a></li> </ul></li> <li><a href="project-reports.html" title="Project Reports"><span class="icon-chevron-right"></span>Project Reports</a></li> <li class="nav-header">Maven Projects</li> <li><a href="../ref/current" title="Maven"><span class="none"></span>Maven</a></li> <li><a href="../archetypes/index.html" title="Archetypes"><span class="none"></span>Archetypes</a></li> <li><a href="../extensions/index.html" title="Extensions"><span class="none"></span>Extensions</a></li> <li><a href="../pom/index.html" title="Parent POMs"><span class="none"></span>Parent POMs</a></li> <li><a href="../plugins/index.html" title="Plugins"><span class="none"></span>Plugins</a></li> <li><a href="../skins/index.html" title="Skins"><span class="none"></span>Skins</a></li> <li><a href="" title="Components"><span class="icon-chevron-down"></span>Components</a> <ul class="nav nav-list"> <li><a href="../archetype/index.html" title="Archetype"><span class="none"></span>Archetype</a></li> <li><a href="../resolver/index.html" title="Artifact Resolver"><span class="none"></span>Artifact Resolver</a></li> <li><a href="../doxia/index.html" title="Doxia"><span class="none"></span>Doxia</a></li> <li><a href="../maven-indexer/index.html" title="Indexer"><span class="none"></span>Indexer</a></li> <li><a href="../jxr/index.html" title="JXR"><span class="none"></span>JXR</a></li> <li><a href="../plugin-testing/index.html" title="Plugin Testing"><span class="none"></span>Plugin Testing</a></li> <li class="active"><a><span class="none"></span>Plugin Tools</a></li> <li><a href="../apache-resource-bundles/index.html" title="Resource Bundles"><span class="none"></span>Resource Bundles</a></li> <li><a href="../scm/index.html" title="SCM"><span class="none"></span>SCM</a></li> <li><a href="../shared/index.html" title="Shared Components"><span class="none"></span>Shared Components</a></li> <li><a href="../surefire/index.html" title="Surefire"><span class="none"></span>Surefire</a></li> <li><a href="../wagon/index.html" title="Wagon"><span class="none"></span>Wagon</a></li> </ul></li> <li class="nav-header">ASF</li> <li><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works"><span class="none"></span>How Apache Works</a></li> <li><a href="https://www.apache.org/foundation/" class="externalLink" title="Foundation"><span class="none"></span>Foundation</a></li> <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" class="externalLink" title="Data Privacy"><span class="none"></span>Data Privacy</a></li> <li><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache"><span class="none"></span>Sponsoring Apache</a></li> <li><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a></li> </ul> </nav> <div class="well sidebar-nav"> <div id="poweredBy"> <div class="clear"></div> <div class="clear"></div> <div class="clear"></div> <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a> </div> </div> </header> <main id="bodyColumn" class="span10" > <section> <h2><a name="Maven_Plugin_Tools"></a>Maven Plugin Tools</h2> <p>The Maven Plugin Tools contains the necessary tools to generate repetitive content such as descriptor, help, and documentation.</p> <p> <object type="image/svg+xml" data="images/plugin-tools-deps.svg" width="643" height="284"> </object> </p> <table border="0" class="table table-striped"> <tr class="a"> <th><b>Module</b></th> <th><b>Overview</b></th></tr> <tr class="b"> <td align="left"><b><a href="./maven-plugin-plugin/index.html">maven-plugin-plugin</a></b></td> <td>Create a Maven plugin descriptor for any mojos found in the source tree, generate reports, create help goal.</td> </tr> <tr class="a"> <td align="left"><b><a href="./maven-plugin-report-plugin/index.html">maven-plugin-report-plugin</a></b></td> <td>The Plugin Report Plugin is used to create reports about the plugin being built.</td> </tr> <tr class="b"> <td align="left"><a href="./maven-plugin-tools-generators/index.html">maven-plugin-tools-generators</a></td> <td>Generators (XML descriptor, help, documentation), used by maven-plugin-plugin to generate content from descriptor extracted from sources.</td> </tr> <tr class="a"> <td align="left"><a href="./maven-plugin-tools-api/index.html">maven-plugin-tools-api</a></td> <td>Extractor API, used by maven-plugin-plugin to extract Mojo information.</td> </tr> <tr class="b"> <td align="left">  <a href="./maven-plugin-tools-java/index.html">maven-plugin-tools-java</a></td> <td>Extractor for plugins written in Java annotated with Mojo Javadoc Tags.</td> </tr> <tr class="a"> <td align="left">  <a href="./maven-plugin-tools-annotations/index.html">maven-plugin-tools-annotations</a></td> <td>Extractor for plugins written in Java with Java annotations.</td> </tr> <tr class="b"> <td align="left">    <a href="./maven-plugin-annotations/index.html">maven-plugin-annotations</a></td> <td>Provides the Java annotations to use in Mojos.</td> </tr> <tr class="a"> <td align="left"><a href="./maven-script/index.html">maven-script</a> (deprecated)</td> <td>Maven Script Mojo Support lets developer write Maven plugins/goals with scripting languages instead of compiled Java.<br /> Deprecated since 3.7.0</td> </tr> </table> <section> <h3><a name="Plugin_Descriptors"></a>Plugin Descriptors</h3> <p>The plugin descriptor is first being generated in memory finally containing some values in HTML format before being persisted into three different XML files. The formats differ in </p> <ul> <li>whether they contain all elements or just a limited set of elements defined by the <a class="externalLink" href="https://maven.apache.org/ref/current/maven-plugin-api/plugin.html">Plugin Descriptor Spec</a></li> <li>whether descriptive elements contain HTML or plain text values</li> <li>whether they are packaged in the resulting JAR or not</li> </ul> Javadoc tags are in general being resolved and replaced by their XHTML value before they end up in the according plugin descriptor attributes <code>description</code> and <code>deprecated</code>. Also javadoc code links via <code>{@link}</code> or <code>@see</code> are replaced by links to the according Javadoc pages if configured accordingly. Plaintext is afterwards being generated out of the XHTML (where most XHTML element are just stripped and links are emitted inside angle brackets). <table border="0" class="table table-striped"> <tr class="a"> <th>File name</th> <th>Allows HTML</th> <th>Limited Elements</th> <th>Contained in JAR</th> </tr> <tr class="b"> <td align="left">plugin.xml</td> <td>no</td> <td>no</td> <td>yes</td> </tr> <tr class="a"> <td align="left">plugin-help.xml</td> <td>no</td> <td>yes</td> <td>yes</td> </tr> <tr class="b"> <td align="left">plugin-enhanced.xml</td> <td>no</td> <td>yes</td> <td>no (volatile file)</td> </tr> </table> <p> <img src="images/plugin-descriptors.svg" width="759" border="0" alt="" /> </p> </section> <section> <h3><a name="See_Also"></a>See Also</h3> <ul> <li><a href="/plugin-testing/">Maven Plugin Testing</a></li> <li><a href="/ref/current/maven-plugin-api/">Maven Plugin API</a></li> </ul> </section> </section> </main> </div> </div> <hr/> <footer> <div class="container-fluid"> <div class="row-fluid"> <p>© 2004–2024 <a href="https://www.apache.org/">The Apache Software Foundation</a> </p> </div> </div> </footer> <script> if(anchors) { anchors.add(); } </script> </body> </html>