<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia 
 | Rendered using Apache Maven Fluido Skin 1.3.1
-->
<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="20140227" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva - 
    Download Apache Archiva</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.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.3.1.min.js"></script>

                          
        
<script type="text/javascript">var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
        document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));</script>
                      
        
<script type="text/javascript">var pageTracker = _gat._getTracker("UA-140879-5");
        pageTracker._initData();
        pageTracker._trackPageview();</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.0.0/"  title="Release 2.0.0">Release 2.0.0</a>
</li>
                                  <li>      <a href="docs/1.3.6/"  title="Preview 1.3.6">Preview 1.3.6</a>
</li>
                                  <li>      <a href="docs/2.0.1-SNAPSHOT/"  title="Dev 2.0.1-SNAPSHOT">Dev 2.0.1-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="http://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="http://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="http://www.apache.org/images/asf_logo_wide.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: 27 Feb 2014</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>Download Apache Archiva 2.0.0<a name="Download_Apache_Archiva_2.0.0"></a></h2>
      
<p>Archiva is distributed under the <a class="externalLink" href="http://archiva.apache.org/license.html}">Apache License, version 2.0</a>.</p>
      
<div class="section">
<h3>System Requirements<a name="System_Requirements"></a></h3>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<td><b>JDK</b></td>
            
<td>1.6 or above</td>
          </tr>
          
<tr class="b">
            
<td><b>No minimum requirement</b></td>
            
<td>The Archiva application is in itself about 20MB 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>Mirror<a name="Mirror"></a></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>Current Release: Archiva 2.0.0<a name="Current_Release:_Archiva_2.0.0"></a></h3>
        
<p>
          This is the currently recommended version of Archiva.

          </p>
<ul>
            
<li><a href="./docs/2.0.0/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.0.0 </th>
                
<th>Mirrors</th>
                
<th>Checksum</th>
                
<th>Signature</th>
              </tr>
            </thead>
            <tbody>
              
<tr class="b">
                
<td>Archiva 2.0.0 Standalone</td>
                
<td><a href="[preferred]archiva/2.0.0/binaries/apache-archiva-2.0.0-bin.tar.gz">tar.gz</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.0.0/binaries/apache-archiva-2.0.0-bin.tar.gz.md5">md5</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dyn/closer.cgi/archiva/2.0.0/binaries/apache-archiva-2.0.0-bin.tar.gz.asc">asc</a></td>
              </tr>
              
<tr class="a">
                
<td></td>
                
<td><a href="[preferred]archiva/2.0.0/binaries/apache-archiva-2.0.0-bin.zip">zip</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.0.0/binaries/apache-archiva-2.0.0-bin.zip.md5">md5</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.0.0/binaries/apache-archiva-2.0.0-bin.zip.asc">asc</a></td>
              </tr>
              
<tr class="b">
                
<td>Archiva 2.0.0 WAR</td>
                
<td><a href="[preferred]archiva/2.0.0/binaries/apache-archiva-2.0.0.war">war</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.0.0/binaries/apache-archiva-2.0.0.war.md5">md5</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.0.0/binaries/apache-archiva-2.0.0.war.asc">asc</a></td>
              </tr>
              
<tr class="a">
                
<td>Archiva 2.0.0 Sources</td>
                
<td><a href="[preferred]archiva/2.0.0/src/2.0.0/apache-archiva-2.0.0-src.zip">source zip</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.0.0/src/2.0.0/apache-archiva-2.0.0-src.zip.md5">md5</a></td>
                
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.0.0/src/2.0.0/apache-archiva-2.0.0-src.zip.asc">asc</a></td>
              </tr>
            </tbody>
          </table>
        

      </div>

                  
<div class="section">
<h3>Last Release serie 1.3.x: Archiva 1.3.6<a name="Last_Release_serie_1.3.x:_Archiva_1.3.6"></a></h3>
            
<p>
            This is a preview release of the next version of Archiva.
            </p>
<ul>
              
<li><a href="./docs/1.3.6/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.6 </th>
                    
<th>Mirros</th>
                    
<th>Checksum</th>
                    
<th>Signature</th>
                  </tr>
                </thead>
                <tbody>
                  
<tr class="b">
                    
<td>Archiva 1.3.6 Standalone</td>
                    
<td><a href="[preferred]archiva/1.3.6/binaries/apache-archiva-1.3.6-bin.tar.gz">tar.gz</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.6/binaries/apache-archiva-1.3.6-bin.tar.gz.md5">md5</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.6/binaries/apache-archiva-1.3.6-bin.tar.gz.asc">asc</a></td>
                  </tr>
                  
<tr class="a">
                    
<td></td>
                    
<td><a href="[preferred]archiva/1.3.6/binaries/apache-archiva-1.3.6-bin.zip">zip</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.6/binaries/apache-archiva-1.3.6-bin.zip.md5">md5</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.6/binaries/apache-archiva-1.3.6-bin.zip.asc">asc</a></td>
                  </tr>
                  
<tr class="b">
                    
<td>Archiva 1.3.6 WAR</td>
                    
<td><a href="[preferred]archiva/1.3.6/binaries/apache-archiva-1.3.6.war">war</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.6/binaries/apache-archiva-1.3.6.war.md5">md5</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.6/binaries/apache-archiva-1.3.6.war.asc">asc</a></td>
                  </tr>
                  
<tr class="a">
                    
<td>Archiva 1.3.6 Sources</td>
                    
<td><a href="[preferred]archiva/1.3.6/src/apache-archiva-1.3.6-src.zip">source zip</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.6/src/apache-archiva-1.3.6-src.zip.md5">md5</a></td>
                    
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/1.3.6/src/apache-archiva-1.3.6-src.zip.asc">asc</a></td>
                  </tr>
                </tbody>
              </table>
            
          </div>

        
      
<div class="section">
<h3>Previous Versions<a name="Previous_Versions"></a></h3>
        
<p>
          More releases are available in the <a class="externalLink" href="http://archive.apache.org/dist/archiva/binaries/">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>Verify the integrity of the files<a name="Verify_the_integrity_of_the_files"></a></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">
                              <p >Copyright &copy;                    2006&#x2013;2014
                        <a href="http://archiva.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.      
                    
      </p>
        </div>

                                                                  
<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>
                  
                <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="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
    </div>
        </div>
    </footer>
        </body>
</html>