---
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> (73MB)
        [<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>]
      </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> (32MB)
        [<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>]
      </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> (4MB)
        [<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>]
      </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> (24MB)
        [<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>]
      </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> (12MB)
        [<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>]
      </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> (6MB)
        [<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>]
      </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>
