---
layout: default
title: Download a Release
---

<h1>Download a Release of the Apache Struts</h1>

<p>
  The Apache Struts web framework is a free open-source solution for creating Java web applications.
</p>

<p>
  You can start with Apache Struts using <a href="//maven.apache.org">Apache Maven</a> and optionally provided
  <a href="/maven-archetypes/">archetypes</a> for easier dependency management and version upgrade.
  Or download some of the distributions for fully offline development.
</p>

<p>
  Use the links below to download a release of Apache Struts from one of our mirrors. You can
  <a href="#verify">verify the integrity</a> of the downloaded files using signatures downloaded from our
  main distribution directory.
</p>

<h2 id="mirror">Mirror</h2>

<p>
  The currently selected mirror is <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.
</p>

<form action="[location]" method="get" id="SelectMirror">
  Other mirrors:
  <select name="Preferred">
    [if-any https]
    [for https]
    <option value="[https]">[https]</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"/>
</form>

<p>
  You may also consult the
  <a href="https://www.apache.org/mirrors/">complete list of mirrors.</a>
</p>

<h2 id="struts-ga">Full Releases</h2>

<h3 id="struts{{ site.current_version_short }}">Struts {{ site.current_version }}</h3>

<p>
  The <a href="https://struts.apache.org/">Apache Struts {{ site.current_version }}</a> is an elegant, extensible
  framework for creating enterprise-ready Java web applications. It is available in a full distribution,
  or as separate library, source, example and documentation distributions.
  Struts {{ site.current_version }} is the "best available" version of Struts in the 6.x series.
</p>

<ul>
  <li>
    <a href="{{ site.wiki_url }}/Version+Notes+{{ site.current_version }}">Version Notes</a>
  </li>

  <li>Full Distribution:
    <ul>
      <li>
        <a href="[preferred]struts/{{ site.current_version }}/struts-{{ site.current_version }}-all.zip">struts-{{ site.current_version }}-all.zip</a> (70MB)
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-all.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-all.zip.sha256">SHA256</a>]
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-all.zip.sha512">SHA512</a>]
      </li>
    </ul>
  </li>

  <li>Example Applications:
    <ul>
      <li>
        <a href="[preferred]struts/{{ site.current_version }}/struts-{{ site.current_version }}-apps.zip">struts-{{ site.current_version }}-apps.zip</a> (35MB)
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-apps.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-apps.zip.sha256">SHA256</a>]
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-apps.zip.sha512">SHA512</a>]
      </li>
    </ul>
  </li>

  <li>Essential Dependencies Only:
    <ul>
      <li>
        <a href="[preferred]struts/{{ site.current_version }}/struts-{{ site.current_version }}-min-lib.zip">struts-{{ site.current_version }}-min-lib.zip</a> (5.9MB)
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-min-lib.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-min-lib.zip.sha256">SHA256</a>]
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-min-lib.zip.sha512">SHA512</a>]
      </li>
    </ul>
  </li>

  <li>All Dependencies:
    <ul>
      <li>
        <a href="[preferred]struts/{{ site.current_version }}/struts-{{ site.current_version }}-lib.zip">struts-{{ site.current_version }}-lib.zip</a> (25.5MB)
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-lib.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-lib.zip.sha256">SHA256</a>]
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-lib.zip.sha512">SHA512</a>]
      </li>
    </ul>
  </li>

  <li>Documentation:
    <ul>
      <li>
        <a href="[preferred]struts/{{ site.current_version }}/struts-{{ site.current_version }}-docs.zip">struts-{{ site.current_version }}-docs.zip</a> (2.5MB)
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-docs.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-docs.zip.sha256">SHA256</a>]
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-docs.zip.sha512">SHA512</a>]
      </li>
    </ul>
  </li>

  <li>Source:
    <ul>
      <li>
        <a href="[preferred]struts/{{ site.current_version }}/struts-{{ site.current_version }}-src.zip">struts-{{ site.current_version }}-src.zip</a> (6.8MB)
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-src.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-src.zip.sha256">SHA256</a>]
        [<a href="https://downloads.apache.org/struts/{{ site.current_version }}/struts-{{ site.current_version }}-src.zip.sha512">SHA512</a>]
      </li>
    </ul>
  </li>

</ul>

<h3 id="struts-25x">Struts {{ site.current_25x_version }}</h3>

<ul>
  <li>
    <a href="{{ site.wiki_url }}/Version+Notes+{{ site.current_25x_version }}">Version Notes</a>
  </li>

  <li>Full Distribution:
    <ul>
      <li>
        <a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-all.zip">struts-{{ site.current_25x_version }}-all.zip</a> (65MB)
        [<a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-all.zip.asc">PGP</a>]
        [<a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-all.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>Example Applications:
    <ul>
      <li>
        <a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-apps.zip">struts-{{ site.current_25x_version }}-apps.zip</a> (35MB)
        [<a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-apps.zip.asc">PGP</a>]
        [<a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-apps.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>Essential Dependencies Only:
    <ul>
      <li>
        <a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-min-lib.zip">struts-{{ site.current_25x_version }}-min-lib.zip</a> (4MB)
        [<a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-min-lib.zip.asc">PGP</a>]
        [<a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-min-lib.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>All Dependencies:
    <ul>
      <li>
        <a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-lib.zip">struts-{{ site.current_25x_version }}-lib.zip</a> (19MB)
        [<a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-lib.zip.asc">PGP</a>]
        [<a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-lib.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>Documentation:
    <ul>
      <li>
        <a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-docs.zip">struts-{{ site.current_25x_version }}-docs.zip</a> (13MB)
        [<a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-docs.zip.asc">PGP</a>]
        [<a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-docs.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>Source:
    <ul>
      <li>
        <a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-src.zip">struts-{{ site.current_25x_version }}-src.zip</a> (7MB)
        [<a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-src.zip.asc">PGP</a>]
        [<a href="{{ site.archive_url }}{{ site.current_25x_version }}/struts-{{ site.current_25x_version }}-src.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

</ul>

<h3 id="struts-23x">Struts 2.3.x</h3>

<p>We stopped serving directly the outdated Struts 2.3.x series, you should immediately upgrade to the latest 2.5.x version
  or migrate to the latest 6.x.x version. Please check the <b>Prior releases</b> section below, if you are looking for older versions.</p>

<h3 id="struts-extras">Struts Extras</h3>

<ul>
  <li>
    <a href="https://github.com/apache/struts-extras">README</a>
  </li>

  <li>Apache Struts 2 Secure Jakarta Multipart parser plugin:
    <ul>
      <li>
        <a href="[preferred]struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1.jar">
          struts2-secure-jakarta-multipart-parser-plugin-1.1.jar
        </a>
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1.jar.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1.jar.md5">MD5</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1.jar.sha1">SHA1</a>]
      </li>
    </ul>
  </li>

  <li>Source:
    <ul>
      <li>
        <a href="[preferred]struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1-source-release.zip">
          struts2-secure-jakarta-multipart-parser-plugin-1.1-source-release.zip
        </a>
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1-source-release.zip.md5">MD5</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1-source-release.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1-source-release.zip.sha1">SHA1</a>]
      </li>
    </ul>
  </li>

  <li>Apache Struts 2 Secure Jakarta Stream Multipart parser plugin:
    <ul>
      <li>
        <a href="[preferred]struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1.jar">
          struts2-secure-jakarta-stream-multipart-parser-plugin-1.1.jar
        </a>
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1.jar.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1.jar.md5">MD5</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1.jar.sha1">SHA1</a>]
      </li>
    </ul>
  </li>

  <li>Source:
    <ul>
      <li>
        <a href="[preferred]struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1-source-release.zip">
          struts2-secure-jakarta-stream-multipart-parser-plugin-1.1-source-release.zip
        </a>
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1-source-release.zip.md5">MD5</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1-source-release.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1-source-release.zip.sha1">SHA1</a>]
      </li>
    </ul>
  </li>

</ul>

<h2 id="prior-releases">Prior releases</h2>
<p>
  If you are looking for other versions than above please check the <a href="https://archive.apache.org/dist/struts/">Apache Archive</a> site.
</p>

<h3 id="struts1310">Struts 1.3.10</h3>

<p>
  <a href="https://struts.apache.org/struts1eol-announcement.html">Struts 1.3.10 - EOL</a>
  is the latest production release of Struts 1. It is available in a full distribution, or as
  separate library, source, example and documentation distributions.
</p>

<p>
  <b>Important: </b>
  <a href="struts1eol-announcement.html">Apache Struts 1 EOL Announcement</a>, including a detailed Q/A section
</p>

<h2 id="verify">Verify the integrity of the files</h2>

<p>
  We recommend that you verify the integrity of the downloaded files using the PGP or MD5/SHA256 signatures.
</p>

<p>
  The PGP signatures can be verified using PGP or GPG.
  First download the
  <a href="https://downloads.apache.org/struts/KEYS">KEYS</a> as well as the <code>asc</code>
  signature file for the particular distribution.
  Make sure you get these files from the <a href="https://downloads.apache.org/struts/">main distribution directory,</a>
  rather than from a mirror. Then verify the signatures using
</p>

<p>
  <code>
    % pgpk -a KEYS
    <br/>
    % pgpv ${filename}.tar.gz.asc
    <br/>
  </code>
  <em>or</em>
  <br/>
  <code>
    % pgp -ka KEYS
    <br/>
    % pgp ${filename}.tar.gz.asc
    <br/>
  </code>
  <em>or</em>
  <br/>
  <code>
    % gpg --import KEYS
    <br/>
    % gpg --verify ${filename}.tar.gz.asc ${filename}.tar.gz
  </code>
</p>

<p>
  Alternatively, you can verify the MD5 signature on the files. A Unix program called <code>md5</code>
  or <code>md5sum</code> is included in many Unix distributions. It is also available as part of
  <a href="https://www.gnu.org/software/textutils/textutils.html"> GNU Textutils.</a>
  Windows users can get binary md5 programs from <a href="https://www.fourmilab.ch/md5/">here,</a>
  <a href="http://www.pc-tools.net/win32/freeware/console/"> here,</a>
  or <a href="https://www.slavasoft.com/fsum/">here.</a>
</p>
