<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.apache.maven.plugins:maven-plugin-report-plugin:3.12.0:report at 2024-05-07

 | Rendered using Apache Maven Default Skin
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
    <title>Apache Rat™ Plugin for Apache Maven &#x2013; Plugin Documentation</title>
    <link rel="stylesheet" href="./css/maven-base.css" />
    <link rel="stylesheet" href="./css/maven-theme.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
<link href="https://creadur.apache.org/font/matesc.css" type="text/css" rel="stylesheet" />
  </head>
  <body class="composite">
    <div id="banner">
<a href="https://www.apache.org/" id="bannerLeft"><img src="https://www.apache.org/img/asf_logo.png"  alt="The Apache Software Foundation" title="The Apache Software Foundation"/></a>      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
      <div class="xleft">
        <span id="publishDate">Last Published: 2024-05-07</span>
           | <span id="projectVersion">Version: 0.17-SNAPSHOT</span>
          | <a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a> &gt;
<a href="https://creadur.apache.org/" class="externalLink" title="Creadur">Creadur</a> &gt;
<a href="https://creadur.apache.org/rat/" class="externalLink" title="Rat">Rat</a> &gt;
<a href="index.html" title="Apache Rat™ Plugin for Apache Maven">Apache Rat™ Plugin for Apache Maven</a> &gt;
Plugin Documentation
      </div>
      <div class="xright">      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
       <h5>Parent Project</h5>
    <ul>
     <li class="none"><a href="../index.html" title="Apache Creadur Rat">Apache Creadur Rat</a></li>
    </ul>
       <h5>Overview</h5>
    <ul>
     <li class="none"><a href="index.html" title="Introduction">Introduction</a></li>
     <li class="none"><strong>Goals</strong></li>
     <li class="none"><a href="usage.html" title="Usage">Usage</a></li>
     <li class="none"><a href="faq.html" title="FAQ">FAQ</a></li>
    </ul>
       <h5>Examples</h5>
    <ul>
     <li class="none"><a href="examples/basic.html" title="Basic use">Basic use</a></li>
     <li class="none"><a href="examples/verify.html" title="Running the plugin automatically">Running the plugin automatically</a></li>
     <li class="none"><a href="examples/site.html" title="Adding a report to the site">Adding a report to the site</a></li>
     <li class="none"><a href="examples/custom-license.html" title="Custom license">Custom license</a></li>
    </ul>
       <h5>Project Documentation</h5>
    <ul>
     <li class="collapsed"><a href="project-info.html" title="Project Information">Project Information</a></li>
     <li class="expanded"><a href="project-reports.html" title="Project Reports">Project Reports</a>
      <ul>
       <li class="none"><a href="changes-report.html" title="Changes">Changes</a></li>
       <li class="none"><a href="jira-report.html" title="JIRA Report">JIRA Report</a></li>
       <li class="none"><a href="checkstyle.html" title="Checkstyle">Checkstyle</a></li>
       <li class="none"><a href="apidocs/index.html" title="Javadoc">Javadoc</a></li>
       <li class="none"><a href="xref/index.html" title="Source Xref">Source Xref</a></li>
       <li class="none"><a href="xref-test/index.html" title="Test Source Xref">Test Source Xref</a></li>
       <li class="none"><a href="pmd.html" title="PMD">PMD</a></li>
       <li class="none"><a href="rat-report.html" title="Rat Report">Rat Report</a></li>
       <li class="none"><a href="spotbugs.html" title="SpotBugs">SpotBugs</a></li>
       <li class="none"><strong>Plugin Documentation</strong></li>
      </ul></li>
    </ul>
       <h5>Apache Rat™</h5>
    <ul>
     <li class="none"><a href="../index.html" title="Introducing Rat">Introducing Rat</a></li>
     <li class="none"><a href="../apidocs/index.html" title="Javadocs">Javadocs</a></li>
     <li class="none"><a href="../download_rat.cgi" title="Downloads">Downloads</a></li>
     <li class="none"><a href="../RELEASE_NOTES.txt" title="Changes">Changes</a></li>
    </ul>
       <h5>Running Rat</h5>
    <ul>
     <li class="none"><a href="../apache-rat/index.html" title="From The Command Line">From The Command Line</a></li>
     <li class="none"><a href="../apache-rat-tasks/index.html" title="With Ant">With Ant</a></li>
     <li class="none"><a href="../apache-rat-plugin/index.html" title="With Maven">With Maven</a></li>
    </ul>
       <h5>Apache Creadur™</h5>
    <ul>
     <li class="none"><a href="https://creadur.apache.org" class="externalLink" title="Creadur Project Home">Creadur Project Home</a></li>
     <li class="none"><a href="https://creadur.apache.org/tentacles" class="externalLink" title="Apache Tentacles">Apache Tentacles</a></li>
     <li class="none"><a href="https://creadur.apache.org/whisker" class="externalLink" title="Apache Whisker">Apache Whisker</a></li>
     <li class="none"><a href="https://www.apache.org/security/" class="externalLink" title="Security">Security</a></li>
     <li class="none"><a href="https://www.apache.org/licenses/" class="externalLink" title="License">License</a></li>
     <li class="none"><a href="https://privacy.apache.org/policies/privacy-policy-public.html" class="externalLink" title="Privacy">Privacy</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">Sponsorship</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a></li>
    </ul>
       <h5>The Apache Software Foundation</h5>
    <ul>
     <li class="none"><a href="https://www.apache.org/foundation" class="externalLink" title="About the Foundation">About the Foundation</a></li>
     <li class="none"><a href="https://projects.apache.org" class="externalLink" title="The projects">The projects</a></li>
     <li class="none"><a href="https://people.apache.org" class="externalLink" title="The people">The people</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How we work">How we work</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/how-it-works.html#history" class="externalLink" title="Our history">Our history</a></li>
     <li class="none"><a href="https://blogs.apache.org/foundation/" class="externalLink" title="News">News</a></li>
    </ul>
       <h5>Contribute</h5>
    <ul>
     <li class="none"><a href="https://www.apache.org/foundation/getinvolved.html" class="externalLink" title="Get Involved">Get Involved</a></li>
    </ul>
       <h5>Committer Info</h5>
    <ul>
     <li class="none"><a href="https://www.apache.org/dev/committers.html" class="externalLink" title="ASF Committers' FAQ">ASF Committers' FAQ</a></li>
     <li class="none"><a href="https://www.apache.org/dev/new-committers-guide.html" class="externalLink" title="New Committers Guide">New Committers Guide</a></li>
     <li class="none"><a href="../site-publish.html" title="Howto publish this site">Howto publish this site</a></li>
     <li class="none"><a href="https://community.apache.org/" class="externalLink" title="Community">Community</a></li>
     <li class="none"><a href="https://www.apache.org/legal/" class="externalLink" title="Legal">Legal</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/marks/" class="externalLink" title="Branding">Branding</a></li>
     <li class="none"><a href="https://www.apache.org/press/" class="externalLink" title="Media Relations">Media Relations</a></li>
    </ul>
      <a href="https://maven.apache.org/" title="Maven" class="poweredBy">
        <img class="poweredBy"  alt="Maven" src="https://maven.apache.org/images/logos/maven-feather.png"     />
      </a>
      </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
<section>
<h2><a name="Plugin_Documentation"></a>Plugin Documentation</h2><a name="Plugin_Documentation"></a>
<p>This report describes goals, parameters details, requirements and sample usage of this plugin.</p><section>
<h3><a name="Goals"></a>Goals</h3><a name="Goals"></a>
<p>Goals available for this plugin:</p>
<table border="0" class="bodyTable">
<tr class="a">
<th>Goal</th>
<th>Report?</th>
<th>Description</th></tr>
<tr class="b">
<td align="left"><a href="./check-mojo.html">apache-rat:check</a></td>
<td>No</td>
<td>Run Rat to perform a violation check.</td></tr>
<tr class="a">
<td align="left"><a href="./help-mojo.html">apache-rat:help</a></td>
<td>No</td>
<td>Display help information on apache-rat-plugin.
<br />
 Call <code>mvn apache-rat:help -Ddetail=true -Dgoal=&lt;goal-name&gt;</code> to display parameter details.</td></tr>
<tr class="b">
<td align="left"><a href="./rat-mojo.html">apache-rat:rat</a></td>
<td>Yes</td>
<td>Generates a report with Rat's output.</td></tr></table></section><section>
<h3><a name="System_Requirements"></a>System Requirements</h3><a name="System_Requirements"></a>
<p>The following specifies the minimum requirements to run this Maven plugin:</p>
<table border="0" class="bodyTable">
<tr class="a">
<td align="left">Maven</td>
<td>3.2.5</td></tr>
<tr class="b">
<td align="left">JDK</td>
<td>1.8</td></tr></table></section><section>
<h3><a name="System_Requirements_History"></a>System Requirements History</h3><a name="System_Requirements_History"></a>
<p>The following specifies the minimum requirements to run this Maven plugin for historical versions:</p>
<table border="0" class="bodyTable">
<tr class="a">
<th>Plugin Version</th>
<th>Maven</th>
<th>JDK</th></tr>
<tr class="b">
<td align="left">from 0.16 to 0.16.1</td>
<td>3.2.5</td>
<td>8</td></tr>
<tr class="a">
<td align="left">from 0.14 to 0.15</td>
<td>2.2.1</td>
<td>8</td></tr>
<tr class="b">
<td align="left">from 0.9 to 0.13</td>
<td>2.2.1</td>
<td>5</td></tr>
<tr class="a">
<td align="left">from 0.6 to 0.8</td>
<td>2.0.4</td>
<td>1.4</td></tr></table></section><section>
<h3><a name="Usage"></a>Usage</h3><a name="Usage"></a>
<p>You should specify the version in your project's plugin configuration:</p>
<div class="source">
<pre>&lt;project&gt;
  ...
  &lt;build&gt;
    &lt;!-- To define the plugin version in your parent POM --&gt;
    &lt;pluginManagement&gt;
      &lt;plugins&gt;
        &lt;plugin&gt;
          &lt;groupId&gt;org.apache.rat&lt;/groupId&gt;
          &lt;artifactId&gt;apache-rat-plugin&lt;/artifactId&gt;
          &lt;version&gt;0.17-SNAPSHOT&lt;/version&gt;
        &lt;/plugin&gt;
        ...
      &lt;/plugins&gt;
    &lt;/pluginManagement&gt;
    &lt;!-- To use the plugin goals in your POM or parent POM --&gt;
    &lt;plugins&gt;
      &lt;plugin&gt;
        &lt;groupId&gt;org.apache.rat&lt;/groupId&gt;
        &lt;artifactId&gt;apache-rat-plugin&lt;/artifactId&gt;
      &lt;/plugin&gt;
      ...
    &lt;/plugins&gt;
  &lt;/build&gt;
  ...
  &lt;!-- To use the report goals in your POM or parent POM --&gt;
  &lt;reporting&gt;
    &lt;plugins&gt;
      &lt;plugin&gt;
        &lt;groupId&gt;org.apache.rat&lt;/groupId&gt;
        &lt;artifactId&gt;apache-rat-plugin&lt;/artifactId&gt;
        &lt;version&gt;0.17-SNAPSHOT&lt;/version&gt;
      &lt;/plugin&gt;
      ...
    &lt;/plugins&gt;
  &lt;/reporting&gt;
  ...
&lt;/project&gt;</pre></div>
<p>For more information, see <a class="externalLink" href="https://maven.apache.org/guides/mini/guide-configuring-plugins.html">&quot;Guide to Configuring Plug-ins&quot;</a></p></section></section>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">
        Copyright &copy; 2016-2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
      Apache Creadur, Creadur, Apache Rat, Apache Tentacles, Apache Whisker, Apache and the Apache feather logo are trademarks
      of The Apache Software Foundation.
      Oracle and Java are registered trademarks of Oracle and/or its affiliates.
      All other marks mentioned may be trademarks or registered trademarks of their respective owners.
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
