blob: 60fe868a200415042f71b5d4a23ba7b113156e7c [file] [log] [blame]
---
layout: default
title: Download a Release
---
<h1>Download a Release of 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 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>
[if-any logo]
<a href="[link]">
<img align="right" src="[logo]" border="0" alt="logo"/>
</a>
[end]
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>
<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 2.5 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> (65MB)
[<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> (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>]
</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> (19MB)
[<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> (13MB)
[<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> (7MB)
[<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-23x">Struts {{ site.prev_version }}</h3>
<ul>
<li>
<a href="{{ site.wiki_url }}/Version+Notes+{{ site.prev_version }}">Version Notes</a>
</li>
<li>Full Distribution:
<ul>
<li>
<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-all.zip">struts-{{ site.prev_version }}-all.zip</a> (65MB)
[<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-all.zip.asc">PGP</a>]
[<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-all.zip.sha256">SHA256</a>]
</li>
</ul>
</li>
<li>Example Applications:
<ul>
<li>
<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-apps.zip">struts-{{ site.prev_version }}-apps.zip</a> (35MB)
[<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-apps.zip.asc">PGP</a>]
[<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-apps.zip.sha256">SHA256</a>]
</li>
</ul>
</li>
<li>Essential Dependencies Only:
<ul>
<li>
<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-min-lib.zip">struts-{{ site.prev_version }}-min-lib.zip</a> (4MB)
[<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-min-lib.zip.asc">PGP</a>]
[<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-min-lib.zip.sha256">SHA256</a>]
</li>
</ul>
</li>
<li>All Dependencies:
<ul>
<li>
<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-lib.zip">struts-{{ site.prev_version }}-lib.zip</a> (19MB)
[<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-lib.zip.asc">PGP</a>]
[<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-lib.zip.sha256">SHA256</a>]
</li>
</ul>
</li>
<li>Documentation:
<ul>
<li>
<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-docs.zip">struts-{{ site.prev_version }}-docs.zip</a> (13MB)
[<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-docs.zip.asc">PGP</a>]
[<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-docs.zip.sha256">SHA256</a>]
</li>
</ul>
</li>
<li>Source:
<ul>
<li>
<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-src.zip">struts-{{ site.prev_version }}-src.zip</a> (7MB)
[<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-src.zip.asc">PGP</a>]
[<a href="{{ site.archive_url }}{{ site.prev_version }}/struts-{{ site.prev_version }}-src.zip.sha256">SHA256</a>]
</li>
</ul>
</li>
</ul>
<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 <a href="https://archive.apache.org/dist/struts/">the 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>
<ul>
<li>Full Distribution:
<ul>
<li>
<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-all.zip">struts-1.3.10-all.zip</a>
[<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-all.zip.asc">PGP</a>]
[<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-all.zip.md5">MD5</a>]
</li>
</ul>
</li>
<li>Library:
<ul>
<li>
<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-lib.zip">struts-1.3.10-lib.zip</a>
[<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-lib.zip.asc">PGP</a>]
[<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-lib.zip.md5">MD5</a>]
</li>
</ul>
</li>
<li>Source:
<ul>
<li>
<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-src.zip">struts-1.3.10-src.zip</a>
[<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-src.zip.asc">PGP</a>]
[<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-src.zip.md5">MD5</a>]
</li>
</ul>
</li>
<li>Examples:
<ul>
<li>
<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-apps.zip">struts-1.3.10-apps.zip</a>
[<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-apps.zip.asc">PGP</a>]
[<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-apps.zip.md5">MD5</a>]
</li>
</ul>
</li>
<li>Documentation:
<ul>
<li>
<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-docs.zip">struts-1.3.10-docs.zip</a>
[<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-docs.zip.asc">PGP</a>]
[<a href="{{ site.archive_url }}1.3.10/struts-1.3.10-docs.zip.md5">MD5</a>]
</li>
</ul>
</li>
</ul>
<h2 id="strutsarchive">Older Releases</h2>
<p>
Older versions of Struts are available from the <a href="https://archive.apache.org/dist/struts/">Archive Site.</a>
</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>