<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 from org.apache.maven.plugins:maven-site-plugin:3.12.1:CategorySummaryDocumentRenderer at 2024-05-27

 | 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; Generated Reports</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-27</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;
Generated Reports
      </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"><a href="plugin-info.html" title="Goals">Goals</a></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"><strong>Project Reports</strong>
      <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"><a href="plugin-info.html" title="Plugin Documentation">Plugin Documentation</a></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="Generated_Reports"></a>Generated Reports</h2>
<p>This document provides an overview of the various reports that are automatically generated by <a class="externalLink" href="http://maven.apache.org">Maven</a> . Each report is briefly described below.</p><section>
<h3><a name="Overview"></a>Overview</h3>
<table border="0" class="bodyTable">
<tr class="a">
<th>Document</th>
<th>Description</th></tr>
<tr class="b">
<td align="left"><a href="changes-report.html">Changes</a></td>
<td align="left">Changes report on releases of this project.</td></tr>
<tr class="a">
<td align="left"><a href="jira-report.html">JIRA Report</a></td>
<td align="left">Report on Issues from the JIRA Issue Tracking System.</td></tr>
<tr class="b">
<td align="left"><a href="checkstyle.html">Checkstyle</a></td>
<td align="left">Report on coding style conventions.</td></tr>
<tr class="a">
<td align="left"><a href="apidocs/index.html">Javadoc</a></td>
<td align="left">Javadoc API documentation.</td></tr>
<tr class="b">
<td align="left"><a href="xref/index.html">Source Xref</a></td>
<td align="left">HTML based, cross-reference version of Java source code.</td></tr>
<tr class="a">
<td align="left"><a href="xref-test/index.html">Test Source Xref</a></td>
<td align="left">HTML based, cross-reference version of Java test source code.</td></tr>
<tr class="b">
<td align="left"><a href="pmd.html">PMD</a></td>
<td align="left">Verification of coding rules.</td></tr>
<tr class="a">
<td align="left"><a href="rat-report.html">Rat Report</a></td>
<td align="left">Report on compliance to license related source code policies</td></tr>
<tr class="b">
<td align="left"><a href="spotbugs.html">SpotBugs</a></td>
<td align="left">Generates a source code report with the SpotBugs Library.</td></tr>
<tr class="a">
<td align="left"><a href="plugin-info.html">Plugin Documentation</a></td>
<td align="left">This report describes goals, parameters details, requirements and sample usage of this plugin.</td></tr></table></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>
