<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia 
 | Rendered using Apache Maven Fluido Skin 1.4
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20160530" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva &#x2013; Download Apache Archiva</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />

      
    <script type="text/javascript" src="./js/apache-maven-fluido-1.4.min.js"></script>

                          
        
<script src="//www.google-analytics.com/analytics.js"></script>
                      
        
<script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;

          ga('create', 'UA-140879-5', 'auto');
          ga('send', 'pageview');</script>
          
                  </head>
        <body class="topBarEnabled">
          
                        
                    
                

    <div id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
                                  <div class="container"><div class="nav-collapse">
            
                
                                <ul class="nav">
                          <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="index.html"  title="About">About</a>
</li>
                  
                      <li>      <a href="download.html"  title="Downloads">Downloads</a>
</li>
                  
                      <li>      <a href="versions.html"  title="Versions">Versions</a>
</li>
                  
                      <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
</li>
                  
                      <li>      <a href="security.html"  title="Security">Security</a>
</li>
                  
                      <li class="dropdown-submenu">
                                      <a href=""  title="Documentation">Documentation</a>
              <ul class="dropdown-menu">
                                  <li>      <a href="docs/2.2.1/"  title="Release 2.2.1">Release 2.2.1</a>
</li>
                                  <li>      <a href="docs/1.3.9/"  title="Preview 1.3.9">Preview 1.3.9</a>
</li>
                                  <li>      <a href="docs/2.2.2-SNAPSHOT/"  title="Dev 2.2.2-SNAPSHOT">Dev 2.2.2-SNAPSHOT</a>
</li>
                              </ul>
            </li>
                          </ul>
      </li>
                <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="developers/building.html"  title="Build Apache Archiva">Build Apache Archiva</a>
</li>
                  
                      <li>      <a href="get-involved.html"  title="Get involved">Get involved</a>
</li>
                  
                      <li>      <a href="developers/how-we-do-things.html"  title="How we do things">How we do things</a>
</li>
                  
                      <li>      <a href="redback"  title="Redback">Redback</a>
</li>
                  
                      <li>      <a href="redback/components"  title="Redback Components">Redback Components</a>
</li>
                  
                      <li class="dropdown-submenu">
                                      <a href="jsui/index.html"  title="Javascript application Architecture">Javascript application Architecture</a>
              <ul class="dropdown-menu">
                                  <li>      <a href="jsui/rest.html"  title="Rest service">Rest service</a>
</li>
                                  <li>      <a href="jsui/template-loading.html"  title="JS Template loading">JS Template loading</a>
</li>
                                  <li>      <a href="jsui/i18n.html"  title="i18n">i18n</a>
</li>
                                  <li>      <a href="jsui/knockout-binding.html"  title="Knockout Binding">Knockout Binding</a>
</li>
                                  <li>      <a href="jsui/generics-js.html"  title="Generic Javascipts">Generic Javascipts</a>
</li>
                              </ul>
            </li>
                  
                      <li>      <a href="developers/releasing.html"  title="Releasing">Releasing</a>
</li>
                  
                      <li>      <a href="developers/publishing-site.html"  title="Site Publish">Site Publish</a>
</li>
                          </ul>
      </li>
                <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="http://www.apache.org/foundation/how-it-works.html"  title="How Apache Works">How Apache Works</a>
</li>
                  
                      <li>      <a href="http://www.apache.org/foundation/"  title="Foundation">Foundation</a>
</li>
                  
                      <li>      <a href="http://www.apache.org/foundation/sponsorship.html"  title="Sponsoring Apache">Sponsoring Apache</a>
</li>
                  
                      <li>      <a href="http://www.apache.org/foundation/thanks.html"  title="Thanks">Thanks</a>
</li>
                          </ul>
      </li>
                <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li class="dropdown-submenu">
                                      <a href="project-info.html"  title="Project Information">Project Information</a>
              <ul class="dropdown-menu">
                                  <li>      <a href="integration.html"  title="Continuous Integration">Continuous Integration</a>
</li>
                                  <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
</li>
                                  <li>      <a href="issue-tracking.html"  title="Issue Tracking">Issue Tracking</a>
</li>
                                  <li>      <a href="license.html"  title="Project License">Project License</a>
</li>
                                  <li>      <a href="team-list.html"  title="Project Team">Project Team</a>
</li>
                                  <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
</li>
                              </ul>
            </li>
                          </ul>
      </li>
                  </ul>
          
                      <form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
    
  <input value="http://archiva.apache.org/" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript" src="https://www.google.com/coop/cse/brand?form=search-form"></script>
          
                                                                            
                   
                      </div>
          
        </div>
      </div>
    </div>
    
        <div class="container">
          <div id="banner">
        <div class="pull-left">
                                                  <a href="index.html" id="bannerLeft">
                                                                                                <img src="images/archiva.png"  alt="Apache Archiva"/>
                </a>
                      </div>
        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
                                                                                        <img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/>
                </a>
      </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
                
                    
                              <li class="">
                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
        Apache</a>
                    <span class="divider">/</span>
      </li>
                <li class="">
                    <a href="./" title="Archiva">
        Archiva</a>
                    <span class="divider">/</span>
      </li>
        <li class="active ">Download Apache Archiva</li>
        
                
                    
                  <li id="publishDate" class="pull-right">Last Published: 30 May 2016</li>
            
                            </ul>
      </div>

      
                
        <div id="bodyColumn" >
                                  
            <!-- 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_Archiva_2.2.1"></a>Download Apache Archiva 2.2.1</h2>
      
<p>Archiva is distributed under the <a class="externalLink" href="http://www.apache.org/licenses/">Apache License, version 2.0</a>.</p>
      
<div class="section">
<h3><a name="System_Requirements"></a>System Requirements</h3>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<td><b>JDK</b></td>
            
<td>1.7 or above</td>
          </tr>
          
<tr class="b">
            
<td><b>No minimum requirement</b></td>
            
<td>The Archiva application is in itself about 50MB but will use more disk space to store repository contents</td>
          </tr>
          
<tr class="a">
            
<td><b>Operating System</b></td>
            
<td>Support for Linux, Mac OS, Solaris and Windows.  Tested on Windows XP SP2, Ubuntu Linux, and Mac OS X.</td>
          </tr>
        </table>
      </div>
      <a name="mirror"></a>
      
<div class="section">
<h3><a name="Mirror"></a>Mirror</h3>

        
<p>
          [if-any logo]
          <a href="[link]">
            <img src="[logo]" align="right" 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" class="form-inline">
          Other mirrors:
          <select name="Preferred" class="input-xlarge">
            [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" class="btn" />
        </form>

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

      </div>
      
<div class="section">
<h3><a name="Current_Release:_Archiva_2.2.1"></a>Current Release: Archiva 2.2.1</h3>
        
<p>
          This is the currently recommended version of Archiva.

          </p>
<ul>
            
<li><a href="./docs/2.2.1/release-notes.html">Release Notes</a></li>
            
<li><a href="./known-issues.html">Known Issues and Errata</a></li>
              
<li><a href="./security.html">Security Reports</a></li>
          </ul>
        
        
<p>
          </p>
<table border="0" class="table table-striped">
            <thead>
              
<tr class="a">
                
<th>Archiva 2.2.1 </th>
                
<th>Mirrors</th>
                
<th>Checksum</th>
                
<th>Signature</th>
              </tr>
            </thead>
            <tbody>
              
<tr class="b">
                
<td>Archiva 2.2.1 Standalone</td>
                
<td><a href="[preferred]archiva/2.2.1/binaries/apache-archiva-2.2.1-bin.tar.gz">tar.gz</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.2.1/binaries/apache-archiva-2.2.1-bin.tar.gz.md5">md5</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dyn/closer.cgi/archiva/2.2.1/binaries/apache-archiva-2.2.1-bin.tar.gz.asc">asc</a></td>
              </tr>
              
<tr class="a">
                
<td></td>
                
<td><a href="[preferred]archiva/2.2.1/binaries/apache-archiva-2.2.1-bin.zip">zip</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.2.1/binaries/apache-archiva-2.2.1-bin.zip.md5">md5</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.2.1/binaries/apache-archiva-2.2.1-bin.zip.asc">asc</a></td>
              </tr>
              
<tr class="b">
                
<td>Archiva 2.2.1 WAR</td>
                
<td><a href="[preferred]archiva/2.2.1/binaries/apache-archiva-2.2.1.war">war</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.2.1/binaries/apache-archiva-2.2.1.war.md5">md5</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.2.1/binaries/apache-archiva-2.2.1.war.asc">asc</a></td>
              </tr>
              
<tr class="a">
                
<td>Archiva 2.2.1 Sources</td>
                
<td><a href="[preferred]archiva/2.2.1/src/apache-archiva-2.2.1-src.zip">source zip</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.2.1/src/apache-archiva-2.2.1-src.zip.md5">md5</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.2.1/src/apache-archiva-2.2.1-src.zip.asc">asc</a></td>
              </tr>
            </tbody>
          </table>
        

      </div>

                  
<div class="section">
<h3><a name="Last_Release_series_1.3.x:_Archiva_1.3.9"></a>Last Release series 1.3.x: Archiva 1.3.9</h3>
            
<p>
            This is the previous stable release of Archiva.
            </p>
<ul>
              
<li><a href="./docs/1.3.9/release-notes.html">Release Notes</a></li>
              
<li><a href="./known-issues.html">Known Issues and Errata</a></li>
              
<li><a href="./security.html">Security Reports</a></li>
            </ul>
            
            
<p>
              </p>
<table border="0" class="table table-striped">
                <thead>
                  
<tr class="a">
                    
<th>Archiva 1.3.9 </th>
                    
<th>Mirrors</th>
                    
<th>Checksum</th>
                    
<th>Signature</th>
                  </tr>
                </thead>
                <tbody>
                  
<tr class="b">
                    
<td>Archiva 1.3.9 Standalone</td>
                    
<td><a href="[preferred]archiva/1.3.9/binaries/apache-archiva-1.3.9.1-bin.tar.gz">tar.gz</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.9/binaries/apache-archiva-1.3.9.1-bin.tar.gz.md5">md5</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.9/binaries/apache-archiva-1.3.9.1-bin.tar.gz.asc">asc</a></td>
                  </tr>
                  
<tr class="a">
                    
<td></td>
                    
<td><a href="[preferred]archiva/1.3.9/binaries/apache-archiva-1.3.9.1-bin.zip">zip</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.9/binaries/apache-archiva-1.3.9.1-bin.zip.md5">md5</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.9/binaries/apache-archiva-1.3.9.1-bin.zip.asc">asc</a></td>
                  </tr>
                  
<tr class="b">
                    
<td>Archiva 1.3.9 WAR</td>
                    
<td><a href="[preferred]archiva/1.3.9/binaries/apache-archiva-1.3.9.war">war</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.9/binaries/apache-archiva-1.3.9.war.md5">md5</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.9/binaries/apache-archiva-1.3.9.war.asc">asc</a></td>
                  </tr>
                  
<tr class="a">
                    
<td>Archiva 1.3.9 Sources</td>
                    
<td><a href="[preferred]archiva/1.3.9/src/apache-archiva-1.3.9-src.zip">source zip</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.9/src/apache-archiva-1.3.9-src.zip.md5">md5</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.9/src/apache-archiva-1.3.9-src.zip.asc">asc</a></td>
                  </tr>
                </tbody>
              </table>
            
          </div>

        
      
<div class="section">
<h3><a name="Previous_Versions"></a>Previous Versions</h3>
        
<p>
          More releases are available in the <a class="externalLink" href="http://archive.apache.org/dist/archiva/">Apache Archiva Archives</a>
          or prior to the graduation from Maven, in the <a class="externalLink" href="http://archive.apache.org/dist/maven/binaries/">Apache Maven Archives</a>.
        </p>
      </div>
      
<div class="section">
<h3><a name="Verify_the_integrity_of_the_files"></a>Verify the integrity of the files</h3>
        
<p>
          We recommend that you verify the integrity of the downloaded files using the PGP signatures and MD5 checksums.

          The PGP signatures can be verified using PGP or GPG. First download the <a class="externalLink" href="http://www.apache.org/dist/archiva/KEYS">KEYS</a>
          as well as the asc signature file for the particular distribution. Make sure you get these files from
          <a class="externalLink" href="http://www.apache.org/dist/archiva">the main distribution directory</a>,
          rather than from a mirror. <br />
          Then verify the signatures using:
        </p>
          
<div>
<pre>
          % pgpk -a KEYS
          % pgpv $filename.tar.gz.asc
          or
          % pgp -ka KEYS
          % pgp $filename.tar.gz.asc
          or
          % gpg --import KEYS
          % gpg --verify $filename.tar.gz.asc
          </pre></div>
        
<p>
          You can also verify the MD5 signature on the files. A Unix program called md5 or md5sum is included in many
          Unix distributions. It is also available as part of <a class="externalLink" href="http://www.gnu.org/software/coreutils/">GNU Coreutils</a>.
          Windows users can get binary md5 programs from <a class="externalLink" href="http://www.fourmilab.ch/md5/">Fourmilab</a>,
          <a class="externalLink" href="http://www.pc-tools.net/win32/md5sums">PC-Tools</a> or <a class="externalLink" href="http://www.slavasoft.com/fsum/">SlavaSoft</a>
        </p>
      </div>
    </div>
  

                  </div>
          </div>

    <hr/>

    <footer>
            <div class="container">
                      <div class="row">
                                                                          
<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
                                                          
<div class="row pull-left">
  <a href="http://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
</div>
                          </div>

                <p id="poweredBy" class="pull-right">
                          <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
              </p>
        
          
    
    
                
    <div id="ohloh" class="pull-right">
      <script type="text/javascript" src="https://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
    </div>
        </div>
    </footer>
        </body>
</html>