<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-09-04 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Apache Rat™ &#x2013; Project Information</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
    <meta name="Date-Revision-yyyymmdd" content="20160904" />
    <meta http-equiv="Content-Language" content="en" />
                                                    
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Mate+SC" type="text/css"/>
                      
        </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: 2016-09-04</span>
                  &nbsp;| <span id="projectVersion">Version: 0.13-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;
    Project Information
              </div>
            <div class="xright">        
                    
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
                    
                                <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://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://planet.apache.org/committers/" class="externalLink" title="Plant Apache">Plant Apache</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>
                       <h5>Modules</h5>
                  <ul>
                  <li class="none">
                          <a href="apache-rat-api/index.html" title="Apache Creadur Rat::API">Apache Creadur Rat::API</a>
            </li>
                  <li class="none">
                          <a href="apache-rat-core/index.html" title="Apache Creadur Rat::Core">Apache Creadur Rat::Core</a>
            </li>
                  <li class="none">
                          <a href="apache-rat-plugin/index.html" title="Apache Creadur Rat::Plugin4Maven">Apache Creadur Rat::Plugin4Maven</a>
            </li>
                  <li class="none">
                          <a href="apache-rat-tasks/index.html" title="Apache Creadur Rat::Tasks4Ant">Apache Creadur Rat::Tasks4Ant</a>
            </li>
                  <li class="none">
                          <a href="apache-rat/index.html" title="Apache Creadur Rat::Command Line">Apache Creadur Rat::Command Line</a>
            </li>
          </ul>
                       <h5>Project Documentation</h5>
                  <ul>
                                                                                                                                                                  <li class="expanded">
            <strong>Project Information</strong>
                  <ul>
                      <li class="none">
                          <a href="dependencies.html" title="Dependencies">Dependencies</a>
            </li>
                      <li class="none">
                          <a href="team-list.html" title="Project Team">Project Team</a>
            </li>
                      <li class="none">
                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
            </li>
                      <li class="none">
                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
            </li>
                      <li class="none">
                          <a href="integration.html" title="Continuous Integration">Continuous Integration</a>
            </li>
                      <li class="none">
                          <a href="source-repository.html" title="Source Repository">Source Repository</a>
            </li>
              </ul>
        </li>
                                                                                                                                                              <li class="collapsed">
                          <a href="project-reports.html" title="Project Reports">Project Reports</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">
        <div class="section">
<h2><a name="Project_Information"></a>Project Information</h2>
<p>This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by <a class="externalLink" href="http://maven.apache.org">Maven</a> on behalf of the project.</p>
<div class="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><a href="dependencies.html">Dependencies</a></td>
<td>This document lists the project's dependencies and provides information on each dependency.</td></tr>
<tr class="a">
<td><a href="team-list.html">Project Team</a></td>
<td>This document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.</td></tr>
<tr class="b">
<td><a href="mail-lists.html">Mailing Lists</a></td>
<td>This document provides subscription and archive information for this project's mailing lists.</td></tr>
<tr class="a">
<td><a href="issue-tracking.html">Issue Tracking</a></td>
<td>This is a link to the issue management system for this project. Issues (bugs, features, change requests) can be created and queried using this link.</td></tr>
<tr class="b">
<td><a href="integration.html">Continuous Integration</a></td>
<td>This is a link to the definitions of all continuous integration processes that builds and tests code on a frequent, regular basis.</td></tr>
<tr class="a">
<td><a href="source-repository.html">Source Repository</a></td>
<td>This is a link to the online source repository that can be viewed via a web browser.</td></tr></table></div></div>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">
              <?xml version="1.0" encoding="UTF-8"?>
<footer>Copyright © 2016 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.</footer>
            </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
