<!DOCTYPE html>


<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/xdoc/index.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" />
    <meta name="author" content="Brett Porter" />
    <title>Archiva &#x2013; The Build Artifact Repository Manager</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">
<link rel="stylesheet" href="css/jquery.fancybox.2.1.5.css" type="text/css" media="screen" /><script src="js/index.js" type="text/javascript"></script><script src="js/fancybox.js" type="text/javascript"></script><script src="js/jquery.fancybox.pack.2.1.5.js" type="text/javascript"></script><script src="js/jquery.mousewheel-3.0.6.pack.js" type="text/javascript"></script>
    <!-- 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 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="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.10/" title="Release 2.2.10">Release 2.2.10</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.10/index.html" title="Archiva 2.2.10">Archiva 2.2.10</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 ">The Build Artifact Repository Manager</li>
        <li id="publishDate" class="pull-right">Last Published: 29 Mar 2023</li>
          </ul>
        </div>
      </header>
        <main id="bodyColumn" >

  
    
<div class="row-fluid">
      
<div class="span8">
        
<div class="newsBox">
          
<div class="hero-unit">
            <span class="bignumber badge badge-warning">NEW</span>
            
<p><b>20th March 2023: The new Apache Archiva release version 2.2.10 is ready for download <a class="externalLink" href="http://archiva.apache.org/download.html"></a> </b>. 
               This is a bugfix release. Please have a look at the <a class="externalLink" href="http://archiva.apache.org/docs/2.2.10/release-notes.html">release notes</a> for further information. 
               As this release contains <b>security fixes</b>, we recommend to update to the new version immediately. </p> 
          </div>
        </div>
      </div>
    </div>


    
<div id="carousel-main">

        
<div id="screenshots-carousel" class="carousel slide span10">
          
          
<div class="carousel-inner">
            
<div class="item active">
              <img src="https://archiva.apache.org/docs/2.2.10/images/ldap-configuration.png" alt="" height="120px" />
              
<div class="carousel-caption">
                
<p>Dynamic LDAP Configuration.</p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/adminguide/redback-runtime-configuration.html">View all.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.10/images/ldap-group-roles-mapping.png" alt="" />
              
<div class="carousel-caption">
                
<p>Dynamic LDAP Group-Roles mapping Configuration.</p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/adminguide/redback-runtime-configuration.html">View all.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.10/images/tour/project-info.png" alt="" />
              
<div class="carousel-caption">
                
<p>Informative display for artifacts stored in the repository.</p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/index.html">View new documentation.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.10/images/tour/search-form.png" alt="" />
              
<div class="carousel-caption">
                
<p>User-friendly browsing interface, and powerful search functionalities.</p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/index.html">View new documentation.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.10/images/tour/search-results.png" alt="" />
              
<div class="carousel-caption">
                
<p>Filterable search results.</p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/index.html">View new documentation.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.10/images/tour/browse.png" alt="" />
              
<div class="carousel-caption">
                
<p>Browse interface.</p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/index.html">View new documentation.</a></p>
              </div>
            </div>


            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.10/images/tour/remote-proxy-cache.png" alt="" />
              
<div class="carousel-caption">
                
<p>Drag &amp; drop remote proxies ordering.</p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/index.html">View new documentation.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.10/images/tour/upload-files.png" alt="" />
              
<div class="carousel-caption">
                
<p>Drag &amp; drop upload artifacts via UI.</p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/index.html">View new documentation.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.10/images/tour/graphical-admin.png" alt="" />
              
<div class="carousel-caption">
                
<p>Comprehensive web-based administration interface.</p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/index.html">View new documentation.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.10/images/proxy-connectors-rules.png" alt="" />
              
<div class="carousel-caption">
                
<p>Bulk update of your black/while list when fetching remote repositories.</p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.10/index.html">View new documentation.</a></p>
              </div>
            </div>

          </div>

          
          <a name="carousel-prev" class="left carousel-control" id="carousel-prev">&#x2039;</a>
          <a name="carousel-next" class="right carousel-control" id="carousel-next">&#x203a;</a>
        </div>
    </div>
    <section>
<h2><a name="Apache_Archiva.C2.99:_The_Build_Artifact_Repository_Manager"></a>Apache Archiva&#x99;: The Build Artifact Repository Manager</h2>
      
<p>
         Apache Archiva&#x99; is an extensible repository management software that
         helps taking care of your own personal or enterprise-wide build 
         artifact repository. It is the perfect companion for build tools such 
         as <a class="externalLink" href="http://maven.apache.org">Maven</a>,
         <a class="externalLink" href="http://continuum.apache.org/">Continuum</a>,
         and <a class="externalLink" href="http://ant.apache.org/">ANT</a>. 
      </p>
 
      
<p>
         Archiva offers several capabilities, amongst which remote repository proxying, 
         security access management, build artifact storage, delivery, browsing, indexing 
         and usage reporting, extensible scanning functionality&#x85; and many more! Get the
         latest updates, follow us on twitter <a class="externalLink" href="http://twitter.com/archiva">@archiva</a>.
      </p>

      
<p>
        And in case you were wondering, it is pronounced <i>ahr-kahy-vuh</i>, like <i>archive</i> but with an <i>a</i>!
      </p>

      
<div class="mainBox">
        
<div class="hero-unit">
          <span class="bignumber badge badge-warning">1</span>

          
<p>
            <a href="docs/2.2.10/tour/index.html">Take a look around</a>
          </p>
          
<p>
            
            Take a look at the screenshots in the feature walkthrough.
          </p>
          <br style="clear: left" />
        </div>
      </div>
      
<div class="mainBox">
        
<div class="hero-unit">
          <span class="bignumber badge badge-warning">2</span>

          
<p>
            <a href="download.html">Download Archiva</a>
          </p>
          
<p>
            <span class="expand" style="width: 200px; display: block; float: left;">
              <img src="images/collapsed.gif" width="7" height="7" alt="" />
              <b>Latest stable release:</b>
            </span>
            <span class="button mainalign">
              <a href="#a" class="btn btn-primary btn-medium" style="margin-bottom: 5px;" id="openDialogRelease">Get Archiva 2.2.10 <span style="font-size:smaller;color:#F89406">20th March 2023</span>
              </a>
            </span>
            <br />
                        <span class="expand">
              <img src="images/collapsed.gif" width="7" height="7" alt="" />
              <a href="download.html"><b>All downloads</b></a>
            </span>
          </p>
        </div>
      </div>

      
<div class="mainBox">
        
<div class="hero-unit">
          <span class="bignumber badge badge-warning">3</span>

          
<p>
            <a href="docs/2.2.10/index.html">Documentation</a>
          </p>
          
<p>
            <img src="images/collapsed.gif" width="7" height="7" alt="" />
            Simple out of the box configuration and <a href="docs/2.2.10/quick-start.html">quick start guide</a>
            <br />
            <img src="images/collapsed.gif" width="7" height="7" alt="" />
            Read the <a href="docs/2.2.10/userguide/index.html">users guide</a> and <a href="docs/2.2.10/adminguide/index.html">administration documentation</a>
            <br />
            <img src="images/collapsed.gif" width="7" height="7" alt="" />
            For security issues, read the <a href="security.html">security vulnerabilities document</a>
            <br />
            <img src="images/collapsed.gif" width="7" height="7" alt="" />
            Documentation is also available for <a href="versions.html">previous versions</a>
          </p>
        </div>
      </div>
      
<div class="mainBox">
        
<div class="hero-unit">
          <span class="bignumber badge badge-warning">4</span>

          
<p>
            <a href="get-involved.html">Get involved</a>
          </p>
          
<p>
            Get support from the <a href="mailing-lists.html">mailing lists</a> and <a class="externalLink" href="http://cwiki.apache.org/confluence/display/ARCHIVA/">wiki</a>, file <a href="issue-management.html">issues</a>, and even <a href="get-involved.html">get involved</a> in the development.
          </p>
          <br style="clear: left" />
        </div>
      </div>

      
<div>
        <section>
<h2><a name="Videos"></a>Videos</h2>
        <section><section>
<h4><a name="Quick_start"></a>Quick start</h4>
        
<p align="center">
          <iframe width="420" height="315" src="https://www.youtube.com/embed/kG349qooN8E" frameborder="0" allowfullscreen=""></iframe>
        </p>
        </section><section>
<h4><a name="Browsing.2FUploading.2FSearching"></a>Browsing/Uploading/Searching</h4>
        
<p align="center">
          <iframe width="420" height="315" src="https://www.youtube.com/embed/y4DoLCfYR-A" frameborder="0" allowfullscreen=""></iframe>
        </p>
      </div>

    </section></section></section>

    <section>
<h2><a name="License"></a>License</h2>
      
<p>
        Archiva is distributed under the <a class="externalLink" href="http://www.apache.org/licenses/">Apache License, version 2.0</a>
      </p>
    </section>
    <section>
<h2><a name="Apache_Software_Foundation"></a>Apache Software Foundation</h2>
        
<p>
            Archiva is part of the Apache software Foundation. We would like to thank all the <a class="externalLink" href="http://www.apache.org/foundation/thanks.html">sponsors that provide financial assistance to the Apache Software Foundation</a>.
            For more information on how you can support the foundation, see the <a class="externalLink" href="http://www.apache.org/foundation/sponsorship.html">sponsorship</a> page.
        </p>
        
<p>
            <a class="externalLink" href="https://www.apache.org/events/current-event.html">
                <img src="https://www.apache.org/events/current-event-234x60.png" alt="Apache Events" style="vertical-align: text-top" />
            </a>
        </p>
        
<p> You can also attend <a class="externalLink" href="https://www.apache.org/events/current-event.html">Apache Events</a>: don't hesitate to ask on the <a href="mailing-lists.html">Archiva User mailing list</a>
            if Archiva team members will be there, it can be a great opportunity to meet them.
        </p>
    </section>


      
<div id="dialogRelease" class="modal hide fade">
        
<div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">[&#xd7;]</button>
          
<h1>Archiva 2.2.10</h1>
        </div>
        
<div class="modal-body">
          
<p>
          This is the recommended latest release of Archiva.
          </p>
          
<table border="0" class="table table-striped">
            
<tr class="a">
              
<th> </th>
              
<th>File-Type</th>
              
<th>Checksum</th>
              
<th>Signature</th>
            </tr>
            
<tr class="b">
              
<td align="left">Archiva 2.2.10 Standalone</td>
              
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.10/binaries/apache-archiva-2.2.10-bin.zip">zip</a></td>
              
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.10/binaries/apache-archiva-2.2.10-bin.zip.sha256">sha256</a></td>
              
<td><a class="externalLink" href="https://www.apache.org/dist/archiva/2.2.10/binaries/apache-archiva-2.2.10-bin.zip.asc">asc</a></td>
            </tr>
            
<tr class="a">
              
<td align="left">Archiva 2.2.10 WAR</td>
              
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.2.10/binaries/apache-archiva-2.2.10.war">war</a></td>
              
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.2.10/binaries/apache-archiva-2.2.10.war.sha256">sha256</a></td>
              
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.2.10/binaries/apache-archiva-2.2.10.war.asc">asc</a></td>
            </tr>
          </table>

        </div>
        
<div class="modal-footer">
          
<div class="row">
            
<div class="pull-rigth">
              <a href="docs/2.2.10/release-notes.html">Release Notes</a> | <a href="download.html">More downloads or change mirror.</a>
            </div>
            
            
          </div>
        </div>
      </div>

  

        </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>