#parse("templates/includes.vtl")
#mdStyle()

#macro(artifactTable, $versionObject)

<table style="width: 100%" class="table">
    <thead>
    <tr>
        <th class="col-md-1">Artifact</th>
        <th class="col-md-3">Maven Usage</th>
        <th class="col-md-3">Notes</th>
    </tr>
    </thead>
    <tbody>
        #foreach($artifact in $versionObject.artifacts)
        <tr>
            #set($version = $versionObject.version)

            #if($artifact.c)
                #set($classifier = "-$artifact.c")
            #else
                #set($classifier = "")
            #end

            <td style="white-space: nowrap;">
                <a href="http://repo1.maven.org/maven2/$artifact.g.replace('.', '/')/${artifact.a}/${version}/${artifact.a}-${version}${classifier}.${artifact.type}">$artifact.a</a>
            </td>

            <td>
                #if($artifact.gavAlt)
                    $artifact.gavAlt
                #else
<pre><code class="xml">&lt;dependency&gt;
  &lt;groupId&gt;$artifact.g&lt;/groupId&gt;
  &lt;artifactId&gt;$artifact.a&lt;/artifactId&gt;
  &lt;version&gt;$version&lt;/version&gt;
&lt;/dependency&gt;
</code></pre>
                #end
            </td>

            <td>$artifact.description.replace('%version%', "$version")</td>

        </tr>
        #end
    </tbody>
</table>
#end

<h1><a name="Download-DownloadApacheShiro"></a>Download Apache Shiro</h1>

<p>Apache Shiro ${latestRelease} is the current stable release (Java 1.8+ JVM).</p>

<p>To download Shiro please follow the instructions below.</p>

<h3>Code Signatures</h3>

<p>You may <a class="external-link" href="https://infra.apache.org/release-signing.html#verifying-signature">verify the
    authenticity</a> of all artifacts below by using the PGP <a class="external-link"
                                                                href="https://downloads.apache.org/shiro/KEYS">KEYS</a>
    file. </p>

<h3>Releases</h3>

<div>
    <ul>
        <li>
            <a href="#latest">Latest Stable Release (${latestRelease})</a>
            <ul>
                <li><a href="#latestBinary">${latestRelease} Binary Distribution</a></li>
                <li><a href="#latestSource">${latestRelease} Source Code Distribution</a></li>
                <li><a href="#latestGit">${latestRelease} Git Source repository</a></li>
            </ul>
        </li>

        <li><a href="#previous">Previous Releases</a>
            <ul>
                <li><a href="#1.5.xBinary">$shiro15x.version</a></li>
                <ul>
                    <li><a href="#1.5.xBinary">$shiro15x.version Binary Distribution</a></li>
                    <li><a href="#1.5.xSource">$shiro15x.version Source Code Distribution</a></li>
                    <li><a href="#1.5.xGit">$shiro15x.version Git Source repository</a></li>
                </ul>
            </ul>
            <ul>
                <li><a href="#1.4.xBinary">$shiro14x.version</a></li>
                <ul>
                    <li><a href="#1.4.xBinary">$shiro14x.version Binary Distribution</a></li>
                    <li><a href="#1.4.xSource">$shiro14x.version Source Code Distribution</a></li>
                    <li><a href="#1.4.xGit">$shiro14x.version Git Source repository</a></li>
                </ul>
            </ul>
            <ul>
                <li><a href="#1.3.xBinary">$shiro13x.version</a></li>
                <ul>
                    <li><a href="#1.3.xBinary">$shiro13x.version Binary Distribution</a></li>
                    <li><a href="#1.3.xSource">$shiro13x.version Source Code Distribution</a></li>
                    <li><a href="#1.3.xGit">$shiro13x.version Git Source repository</a></li>
                </ul>
            </ul>
            <ul>
                <li><a href="#1.2.xBinary">$shiro12x.version</a></li>
                <ul>
                    <li><a href="#1.2.xBinary">$shiro12x.version Binary Distribution</a></li>
                    <li><a href="#1.2.xSource">$shiro12x.version Source Code Distribution</a></li>
                    <li><a href="#1.2.xGit">$shiro12x.version Git Source repository</a></li>
                </ul>
            </ul>
            <ul>
                <li><a href="#1.1.0Binary">$shiro11x.version</a></li>
                <ul>
                    <li><a href="#1.1.0Binary">$shiro11x.version Binary Distribution</a></li>
                    <li><a href="#1.1.0Source">$shiro11x.version Source Code Distribution</a></li>
                    <li><a href="#1.1.0Git">$shiro11x.version Git Source repository</a></li>
                </ul>
            </ul>
        </li>
    </ul>
</div>


<h2><a name="latest"></a>Latest Stable Release (${latestRelease})</h2>

<h3><a name="latestBinary"></a>${latestRelease} Binary Distribution</h3>

<p>Associated documentation can be found <a href="documentation.html" title="Documentation">here</a></p>

<p>To download the files directly as one .jar file just click the link in the "Artifact" column. If you would like
    acquire Shiro through Maven, then please use the markup listed under "Maven Usage"</p>

<p>
</p>

#artifactTable($shiro16x)

<h3><a name="latestSource"></a>${latestRelease} Source Code Distribution</h3>

<p>The source bundle requires JDK 1.8 and Maven 3.0.3+ to build:</p>

<p><a class="external-link" href="https://downloads.apache.org/shiro/${latestRelease}/shiro-root-${latestRelease}-source-release.zip">zip</a>
    (<a class="external-link"
        href="https://downloads.apache.org/shiro/${latestRelease}/shiro-root-${latestRelease}-source-release.zip.asc">pgp</a>, <a
            class="external-link"
            href="https://downloads.apache.org/${latestRelease}/shiro-root-${latestRelease}-source-release.zip.sha512">sha512</a>)
</p>

<h3><a name="latestGit"></a>${latestRelease} Git Source repository</h3>

<p>The source can be cloned anonymously from Git with this command:</p>
<pre><code style="bash">git clone https://github.com/apache/shiro.git
git checkout shiro-root-${latestRelease} -b shiro-root-${latestRelease}
</code>
</pre>


<h2><a name="previous"></a>Previous Releases</h2>

<h3><a name="1.5.xBinary"></a>${shiro15x.version} Binary Distribution</h3>

<p>Associated documentation can be found <a href="documentation.html" title="Documentation">here</a></p>

<p>To download the files directly as one .jar file just click the link in the "Artifact" column. If you would like
    acquire Shiro through Maven, then please use the markup listed under "Maven Usage"</p>

<p>
</p>

#artifactTable($shiro15x)

<h3><a name="1.5.xSource"></a>${shiro15x.version} Source Code Distribution</h3>

<p>The source bundle requires JDK 1.8 and Maven 3.0.3+ to build:</p>

<p><a class="external-link" href="https://downloads.apache.org/shiro/${shiro14x.version}/shiro-root-${shiro15x.version}-source-release.zip">zip</a>
    (<a class="external-link"
        href="https://downloads.apache.org/shiro/${shiro14x.version}/shiro-root-${shiro15x.version}-source-release.zip.asc">pgp</a>, <a
            class="external-link"
            href="https://downloads.apache.org/shiro/${shiro14x.version}/shiro-root-${shiro15x.version}-source-release.zip.md5">md5</a>, <a
            class="external-link"
            href="https://downloads.apache.org/shiro/${shiro14x.version}/shiro-root-${shiro15x.version}-source-release.zip.sha512">sha512</a>)
</p>

<h3><a name="1.5.xGit"></a>${shiro15x.version} Git Source repository</h3>

<p>The source can be cloned anonymously from Git with this command:</p>
<pre><code class="bash">git clone https://github.com/apache/shiro.git
git checkout shiro-root-${shiro15x.version} -b shiro-root-${shiro14x.version}
</code></pre>

<h3><a name="1.4.xBinary"></a>${shiro14x.version} Binary Distribution</h3>

<p>Associated documentation can be found <a href="documentation.html" title="Documentation">here</a></p>

<p>To download the files directly as one .jar file just click the link in the "Artifact" column. If you would like
    acquire Shiro through Maven, then please use the markup listed under "Maven Usage"</p>

<p>
</p>

#artifactTable($shiro14x)

<h3><a name="1.4.xSource"></a>${shiro14x.version} Source Code Distribution</h3>

<p>The source bundle requires JDK 1.6 and Maven 3.0.3+ to build:</p>

<p><a class="external-link" href="https://downloads.apache.org/shiro/${shiro14x.version}/shiro-root-${shiro14x.version}-source-release.zip">zip</a>
    (<a class="external-link"
        href="https://downloads.apache.org/shiro/${shiro14x.version}/shiro-root-${shiro14x.version}-source-release.zip.asc">pgp</a>, <a
            class="external-link"
            href="https://downloads.apache.org/shiro/${shiro14x.version}/shiro-root-${shiro14x.version}-source-release.zip.md5">md5</a>, <a
            class="external-link"
            href="https://downloads.apache.org/shiro/${shiro14x.version}/shiro-root-${shiro14x.version}-source-release.zip.sha512">sha512</a>)
</p>

<h3><a name="1.4.xGit"></a>${shiro14x.version} Git Source repository</h3>

<p>The source can be cloned anonymously from Git with this command:</p>
<pre><code class="bash">git clone https://github.com/apache/shiro.git
git checkout shiro-root-${shiro14x.version} -b shiro-root-${shiro14x.version}
</code></pre>

<h3><a name="1.3.xBinary"></a>${shiro13x.version} Binary Distribution</h3>

<p>Associated documentation can be found <a href="documentation.html" title="Documentation">here</a></p>

<p>To download the files directly as one .jar file just click the link in the "Artifact" column. If you would like
    acquire Shiro through Maven, then please use the markup listed under "Maven Usage"</p>

<p>
</p>

#artifactTable($shiro13x)

<h3><a name="1.3.xSource"></a>${shiro13x.version} Source Code Distribution</h3>

<p>The source bundle requires JDK 1.6 and Maven 3.0.3+ to build:</p>

<p><a class="external-link" href="https://downloads.apache.org/shiro/${shiro13x.version}/shiro-root-${shiro13x.version}-source-release.zip">zip</a>
    (<a class="external-link"
        href="https://downloads.apache.org/shiro/${shiro13x.version}/shiro-root-${shiro13x.version}-source-release.zip.asc">pgp</a>, <a
            class="external-link"
            href="https://downloads.apache.org/shiro/${shiro13x.version}/shiro-root-${shiro13x.version}-source-release.zip.md5">md5</a>, <a
            class="external-link"
            href="https://downloads.apache.org/shiro/${shiro13x.version}/shiro-root-${shiro13x.version}-source-release.zip.sha1">sha1</a>)
</p>

<h3><a name="1.3.xGit"></a>${shiro13x.version} Git Source repository</h3>

<p>The source can be cloned anonymously from Git with this command:</p>
<pre><code class="bash">git clone https://github.com/apache/shiro.git
git checkout shiro-root-${shiro13x.version} -b shiro-root-${shiro13x.version}
</code></pre>

<h3><a name="1.2.xBinary"></a>${shiro12x.version} Binary Distribution</h3>

<p>Associated documentation can be found <a href="documentation.html" title="Documentation">here</a></p>

<p>To download the files directly as one .jar file just click the link in the "Artifact" column. If you would like
    acquire Shiro through Maven, then please use the markup listed under "Maven Usage"</p>

<p>
</p>

#artifactTable($shiro12x)

<h3><a name="1.2.xSource"></a>${shiro12x.version} Source Code Distribution</h3>

<p>The source bundle requires JDK 1.6 and Maven 3.0.3+ to build:</p>

<p><a class="external-link" href="https://downloads.apache.org/shiro/${shiro12x.version}/shiro-root-${shiro12x.version}-source-release.zip">zip</a>
    (<a class="external-link"
        href="https://downloads.apache.org/shiro/${shiro12x.version}/shiro-root-${shiro12x.version}-source-release.zip.asc">pgp</a>, <a
            class="external-link"
            href="https://downloads.apache.org/shiro/${shiro12x.version}/shiro-root-${shiro12x.version}-source-release.zip.md5">md5</a>, <a
            class="external-link"
            href="https://downloads.apache.org/shiro/${shiro12x.version}/shiro-root-${shiro12x.version}-source-release.zip.sha1">sha1</a>)
</p>

<h3><a name="1.2.xGit"></a>${shiro12x.version} Git Source repository</h3>

<p>The source can be cloned anonymously from Git with this command:</p>
<pre><code class="bash">git clone https://github.com/apache/shiro.git
git checkout shiro-root-${shiro12x.version} -b shiro-root-${shiro12x.version}
</code></pre>


<h3><a name="1.1.0"></a>${shiro11x.version}</h3>

<h4><a name="1.1.0Binary"></a>${shiro11x.version} Binary Distribution</h4>

<p>Associated documentation can be found <a href="documentation.html" title="Documentation">here</a></p>

<p>To download the files directly as one .jar file just click the link in the "Artifact" column. If you would like
    acquire Shiro through Maven, then please use the markup listed under "Maven Usage"</p>

<p>
</p>

#artifactTable($shiro11x)

<h4><a name="1.1.0Source"></a>${shiro11x.version} Source Code Distribution</h4>

<p>The ${shiro11x.version} source bundle requires JDK 1.5+ and Maven 2.2+ to build:</p>

<p><a class="external-link"
      href="https://archive.apache.org/dist/shiro/${shiro11x.version}/shiro-root-${shiro11x.version}-source-release.zip">zip</a> (<a
        class="external-link" href="https://archive.apache.org/dist/shiro/${shiro11x.version}/shiro-root-${shiro11x.version}-source-release.zip.asc">pgp</a>,
    <a class="external-link" href="https://archive.apache.org/dist/shiro/${shiro11x.version}/shiro-root-${shiro11x.version}-source-release.zip.md5">md5</a>,
    <a class="external-link" href="https://archive.apache.org/dist/shiro/${shiro11x.version}/shiro-root-${shiro11x.version}-source-release.zip.sha1">sha1</a>)
</p>

<h4><a name="1.1.0Git"></a>${shiro11x.version} Git Source repository</h4>

<p>The source can be cloned anonymously from Git with this command:</p>
<pre><code class="bash">git clone https://github.com/apache/shiro.git
git checkout shiro-root-${shiro11x.version} -b shiro-root-${shiro11x.version}
</code></pre>


<input type="hidden" id="ghEditPage" value="download.html.vtl"></input>
