<!DOCTYPE html>


<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/xdoc/download.xml.vm
 | Rendered using Apache Maven Fluido Skin 1.11.0
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
    <title>Archiva &#x2013; Download Apache Archiva</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.0.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
    <script src="./js/apache-maven-fluido-1.11.0.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">

    <!-- Matomo -->
    <script>
        var _paq = window._paq = window._paq || [];
                _paq.push(['disableCookies']);
                    _paq.push(['trackPageView']);
                    _paq.push(['enableLinkTracking']);
        
        (function() {
            var u="https://analytics.apache.org";
            _paq.push(['setTrackerUrl', u+'/matomo.php']);
            _paq.push(['setSiteId', '10']);
            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
        })();
    </script>
    <!-- End Matomo Code -->
  </head>
  <body class="topBarEnabled">
    <a href="https://github.com/apache/archiva">
      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
        alt="Fork me on GitHub">
    </a>
    <header id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
            <div class="container">
              <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
              </a>
          <nav class="nav-collapse">
            <ul class="nav">
      <li class="dropdown">
        <a 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 title="Downloads">Downloads</a></li>
            <li><a href="versions.html" title="Versions">Versions</a></li>
            <li><a href="mailing-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.8/" title="Release 2.2.8">Release 2.2.8</a></li>
                  <li><a href="docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
              </ul>
            </li>
        </ul>
      </li>
      <li class="dropdown">
        <a 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 class="dropdown-submenu">
<a href="" title="Developer Reference">Developer Reference</a>
              <ul class="dropdown-menu">
                  <li><a href="ref/2.2.8/index.html" title="Archiva 2.2.8">Archiva 2.2.8</a></li>
                  <li><a href="ref/3.0.0-SNAPSHOT/index.html" title="Archiva 3.0.0-SNAPSHOT">Archiva 3.0.0-SNAPSHOT</a></li>
                  <li><a href="redback/core/3.0.0-SNAPSHOT/index.html" title="Redback 3.0.0-SNAPSHOT">Redback 3.0.0-SNAPSHOT</a></li>
              </ul>
            </li>
            <li><a href="redback/index.html" title="Redback">Redback</a></li>
            <li><a href="components/index.html" title="Archiva Components Project">Archiva Components Project</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 class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
        </ul>
      </li>
      <li class="dropdown">
        <a 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="ci-management.html" title="CI Management">CI Management</a></li>
                  <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
                  <li><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
                  <li><a href="licenses.html" title="Licenses">Licenses</a></li>
                  <li><a href="team.html" title="Team">Team</a></li>
                  <li><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
              </ul>
            </li>
        </ul>
      </li>
            </ul>
          </nav>
          <div class="nav-collapse">
<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
  <input value="https://archiva.apache.org/" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
          </div>
        </div>
      </div>
    </header>
    <div class="container">
      <header>
        <div id="banner">
          <div class="pull-left"><a href="index.html" id="bannerLeft"><img src="images/archiva.png"  alt="Apache Archiva" style="" /></a></div>
          <div class="pull-right"><a href="https://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation" style="" /></a></div>
          <div class="clear"><hr/></div>
        </div>

        <div id="breadcrumbs">
          <ul class="breadcrumb">
      <li class=""><a href="https://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 2022</li>
          </ul>
        </div>
      </header>
        <main id="bodyColumn" >

  
    <section>
<h2><a name="Download_Apache_Archiva_2.2.8"></a>Download Apache Archiva 2.2.8</h2>
      
<p>Archiva is distributed under the <a class="externalLink" href="https://www.apache.org/licenses/">Apache License, version 2.0</a>.</p>
      <section>
<h3><a name="System_Requirements"></a>System Requirements</h3>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<td align="left"><b>JDK</b></td>
            
<td>1.8</td>
          </tr>
          
<tr class="b">
            
<td align="left"><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 align="left"><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>
      </section>
      <a name="mirror"></a>
      <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 the other mirror.
        </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>

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

          </p>
<ul>
            
<li><a href="./docs/2.2.8/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.8 </th>
                
<th>File-Type</th>
                
<th>SHA256 Checksum</th>
                
<th>SHA512 Checksum</th>
                
<th>Signature</th>
              </tr>
            </thead>
            <tbody>
              
<tr class="b">
                
<td align="left">Archiva 2.2.8 Standalone</td>
                
<td><a href="[preferred]archiva/2.2.8/binaries/apache-archiva-2.2.8-bin.tar.gz">tar.gz</a></td>
                
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.8/binaries/apache-archiva-2.2.8-bin.tar.gz.sha256">sha256</a></td>
                
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.8/binaries/apache-archiva-2.2.8-bin.tar.gz.sha512">sha512</a></td>
                
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.8/binaries/apache-archiva-2.2.8-bin.tar.gz.asc">asc</a></td>
              </tr>
              
<tr class="a">
                
<td align="left"></td>
                
<td><a href="[preferred]archiva/2.2.8/binaries/apache-archiva-2.2.8-bin.zip">zip</a></td>
                
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.8/binaries/apache-archiva-2.2.8-bin.zip.sha256">sha256</a></td>
                
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.8/binaries/apache-archiva-2.2.8-bin.zip.sha512">sha512</a></td>
                
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.8/binaries/apache-archiva-2.2.8-bin.zip.asc">asc</a></td>
              </tr>
              
<tr class="b">
                
<td align="left">Archiva 2.2.8 WAR</td>
                
<td><a href="[preferred]archiva/2.2.8/binaries/apache-archiva-2.2.8.war">war</a></td>
                
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.8/binaries/apache-archiva-2.2.8.war.sha256">sha256</a></td>
                
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.8/binaries/apache-archiva-2.2.8.war.sha512">sha512</a></td>
                
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.8/binaries/apache-archiva-2.2.8.war.asc">asc</a></td>
              </tr>
              
<tr class="a">
                
<td align="left">Archiva 2.2.8 Sources</td>
                
<td><a href="[preferred]archiva/2.2.8/src/apache-archiva-2.2.8-src.zip">source zip</a></td>
                
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.8/src/apache-archiva-2.2.8-src.zip.sha256">sha256</a></td>
                
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.8/src/apache-archiva-2.2.8-src.zip.sha512">sha512</a></td>
                
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.8/src/apache-archiva-2.2.8-src.zip.asc">asc</a></td>
              </tr>
            </tbody>
          </table>
        

      </section>

        
      <section>
<h3><a name="Previous_Versions"></a>Previous Versions</h3>
        
<p>
          More releases are available in the <a class="externalLink" href="https://archive.apache.org/dist/archiva/">Apache Archiva Archives</a>
          or prior to the graduation from Maven, in the <a class="externalLink" href="https://archive.apache.org/dist/maven/binaries/">Apache Maven Archives</a>.
        </p>
      </section>
      <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 SHA, MD5 checksums.

          The PGP signatures can be verified using PGP or GPG. First download the <a class="externalLink" href="https://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="https://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>
          Please use the SHA checksum for verification if available, use MD5 only for the older versions, that have no SHA checksum available.
          To verify the SHA signature on the files, you can use utilities for your platform. A Unix program called sha1sum or sha256sum (md5sum) is included in many
          Unix distributions. It is also available as part of <a class="externalLink" href="https://www.gnu.org/software/coreutils/">GNU Coreutils</a>.
          Windows users can get binary checksum utility e.g. from <a class="externalLink" href="https://www.slavasoft.com/hashcalc/">SlavaSoft</a>.
        </p>
      </section>
    </section>
  

        </main>
    </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">
        &nbsp;
      </div>
      <div class="row">
      <p>
        <a href="https://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
        </p>
      </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>
    </footer>
<script>
	if(anchors) {
	  anchors.add();
	}
</script>
  </body>
</html>