<!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-11-21 -->
<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; Downloads</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="20181126" />
    <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: 2018-11-26</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;
    Downloads
              </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="collapsed">
                          <a href="project-info.html" title="Project Information">Project Information</a>
                  </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">
        <!-- 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. -->

    <div class="section">
<h2><a name="Download_Apache_Creadur_Rat"></a>Download Apache Creadur Rat</h2>

<div class="section">
<h3><a name="Using_a_Mirror"></a>Using a Mirror</h3>

<p>
          We recommend you use a mirror to download our release
          builds, but you <b>must</b> <a class="externalLink" href="https://www.apache.org/info/verification.html">verify the integrity</a> of
          the downloaded files using signatures downloaded from our main
          distribution directories. Recent releases (48 hours) may not yet
          be available from the mirrors.
        </p>


<p>
          You are currently using <b>[preferred]</b>.  If you
          encounter a problem with this mirror, please select another
          mirror.  If all mirrors are failing, there are <i>backup</i>
          mirrors (at the end of the mirrors list) that should be
          available.
          <br /></br>
          [if-any logo]<a href="[link]"><img src="[logo]" align="right" border="0" alt="" /></img></a>[end]
        </p>

        <form action="[location]" method="get" id="SelectMirror">

<p>
            Other mirrors:
            <select name="Preferred">
              [if-any http]
              [for http]<option value="[http]">[http]</option>[end]
              [end]
              [if-any ftp]
              [for ftp]<option value="[ftp]">[ftp]</option>[end]
              [end]
              [if-any backup]
              [for backup]<option value="[backup]">[backup] (backup)</option>[end]
              [end]
            </select>
            <input type="submit" value="Change"></input>
          </p>
        </form>


<p>
          The <a class="externalLink" href="https://www.apache.org/dist/creadur/KEYS">KEYS</a>
          link links to the code signing keys used to sign the
          product.  The <tt>PGP</tt> link downloads the OpenPGP
          compatible signature from our main site.  The
          <tt>SHA512</tt> links download the
          checksum from the main site.
        </p>
      </div>
    </div>

<div class="section">
<h2><a name="Latest_release_of_Apache_Creadur_Rat_is_0.12"></a>Latest release of Apache Creadur Rat is 0.12</h2>

<div class="section">
<h3><a name="Binaries"></a>Binaries</h3>

<table border="0" class="bodyTable">

<tr class="a">

<td><a href="[preferred]/creadur/apache-rat-0.12/apache-rat-0.12-bin.tar.bz2">apache-rat-0.12-bin.tar.bz2</a></td>

<td><a class="externalLink" href="https://www.apache.org/dist/creadur/apache-rat-0.12/apache-rat-0.12-bin.tar.bz2.sha512">sha512</a></td>

<td><a class="externalLink" href="https://www.apache.org/dist/creadur/apache-rat-0.12/apache-rat-0.12-bin.tar.bz2.asc">pgp</a></td>
          </tr>

<tr class="b">

<td><a href="[preferred]/creadur/apache-rat-0.12/apache-rat-0.12-bin.tar.gz">apache-rat-0.12-bin.tar.gz</a></td>

<td><a class="externalLink" href="https://www.apache.org/dist/creadur/apache-rat-0.12/apache-rat-0.12-bin.tar.gz.sha512">sha512</a></td>

<td><a class="externalLink" href="https://www.apache.org/dist/creadur/apache-rat-0.12/apache-rat-0.12-bin.tar.gz.asc">pgp</a></td>
          </tr>

<tr class="a">

<td><a href="[preferred]/creadur/apache-rat-0.12/apache-rat-0.12-bin.zip">apache-rat-0.12-bin.zip</a></td>

<td><a class="externalLink" href="https://www.apache.org/dist/creadur/apache-rat-0.12/apache-rat-0.12-bin.zip.sha512">sha512</a></td>

<td><a class="externalLink" href="https://www.apache.org/dist/creadur/apache-rat-0.12/apache-rat-0.12-bin.zip.asc">pgp</a></td>
          </tr>
        </table>
      </div>

<div class="section">
<h3><a name="Source"></a>Source</h3>

<table border="0" class="bodyTable">

<tr class="a">

<td><a href="[preferred]/creadur/apache-rat-0.12/apache-rat-0.12-src.tar.bz2">apache-rat-0.12-src.tar.bz2</a></td>

<td><a class="externalLink" href="https://www.apache.org/dist/creadur/apache-rat-0.12/apache-rat-0.12-src.tar.bz2.sha512">sha512</a></td>

<td><a class="externalLink" href="https://www.apache.org/dist/creadur/apache-rat-0.12/apache-rat-0.12-src.tar.bz2.asc">pgp</a></td>
          </tr>

<tr class="b">

<td><a href="[preferred]/creadur/apache-rat-0.12/apache-rat-0.12-src.tar.gz">apache-rat-0.12-src.tar.gz</a></td>

<td><a class="externalLink" href="https://www.apache.org/dist/creadur/apache-rat-0.12/apache-rat-0.12-src.tar.gz.sha512">sha512</a></td>

<td><a class="externalLink" href="https://www.apache.org/dist/creadur/apache-rat-0.12/apache-rat-0.12-src.tar.gz.asc">pgp</a></td>
          </tr>

<tr class="a">

<td><a href="[preferred]/creadur/apache-rat-0.12/apache-rat-0.12-src.zip">apache-rat-0.12-src.zip</a></td>

<td><a class="externalLink" href="https://www.apache.org/dist/creadur/apache-rat-0.12/apache-rat-0.12-src.zip.sha512">sha512</a></td>

<td><a class="externalLink" href="https://www.apache.org/dist/creadur/apache-rat-0.12/apache-rat-0.12-src.zip.asc">pgp</a></td>
          </tr>
        </table>
      </div>

<div class="section">
<h2><a name="Apache_Creadur_Rat_0.13-SNAPSHOT"></a>Apache Creadur Rat 0.13-SNAPSHOT</h2>

<div class="section">
<h3><a name="Snapshots"></a>Snapshots</h3>

<table border="0" class="bodyTable">

<tr class="a">

<td colspan="4"><a class="externalLink" href="https://repository.apache.org/content/repositories/snapshots/org/apache/rat">apache-rat SNAPSHOT 0.13-SNAPSHOT</a></td>
            </tr>
          </table>
        </div>
        </div>
    </div>

<div class="section">
<h2><a name="Archives"></a>Archives</h2>

<p>
          Older releases can be obtained from the archives.
        </p>

<ul>

<li class="download"><a href="[preferred]/creadur/">browse download area</a></li>

<li><a class="externalLink" href="https://archive.apache.org/dist/creadur/">archives...</a></li>

<li><a class="externalLink" href="https://archive.apache.org/dist/incubator/rat/">Incubator archives...</a></li>
        </ul>
    </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>
