<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<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="author" content="Brett Porter" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva &#x2013; The Build Artifact Repository Manager</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.6.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.6.min.js"></script>
<!-- Google Analytics -->
        <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>
<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>      </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>
      <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="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.4/" title="Release 2.2.4">Release 2.2.4</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 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="components" title="Archiva Components">Archiva 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="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>
<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">asyncJs( 'https://cse.google.com/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="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: 28 Nov 2019</li>
        </ul>
      </div>
        <div 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>30th April 2019: The new Apache Archiva release version 2.2.4 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.4/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.4/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.4/adminguide/redback-runtime-configuration.html">View all.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.4/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.4/adminguide/redback-runtime-configuration.html">View all.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.4/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.4/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.4/index.html">View new documentation.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.4/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.4/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.4/index.html">View new documentation.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.4/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.4/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.4/index.html">View new documentation.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.4/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.4/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.4/index.html">View new documentation.</a></p>
              </div>
            </div>


            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.4/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.4/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.4/index.html">View new documentation.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.4/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.4/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.4/index.html">View new documentation.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.4/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.4/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.4/index.html">View new documentation.</a></p>
              </div>
            </div>
            
<div class="item">
              <img src="https://archiva.apache.org/docs/2.2.4/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.4/tour/index.html">View all.</a></p>
                
<p><a class="externalLink" href="https://archiva.apache.org/docs/2.2.4/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>
    
<div class="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.4/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.4 <span style="font-size:smaller;color:#F89406">30th April 2019</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.4/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.4/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.4/userguide/index.html">users guide</a> and <a href="docs/2.2.4/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-tracking.html">issues</a>, and even <a href="get-involved.html">get involved</a> in the development.
          </p>
          <br style="clear: left" />
        </div>
      </div>

      
<div>
        
<div class="section">
<h2><a name="Videos"></a>Videos</h2>
        
<div class="section">
<div class="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>
        </div>
<div class="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>

    </div></div></div>

    
<div class="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>
    </div>
    
<div class="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>
    </div>

    
<div class="section">
<h2><a name="Resources"></a>Resources</h2>
      
<p>
        Need more? Try some of these resources.
      </p>
      
<div>
        
<div class="section">
<h3><a name="Books"></a>Books</h3>
        
<div style="margin-left: auto; margin-right: auto; text-align: center">
          
<div style="float: left; width: 50%;">
            
<p>
              <a class="externalLink" href="http://www.packtpub.com/apache-maven-2-effective-implementations/book"><img src="images/books/apache_maven_2_effective_implementation.jpg" alt="" /></a><br />
              <a class="externalLink" href="http://www.packtpub.com/apache-maven-2-effective-implementations/book">Apache Maven 2: Effective Implementation</a> (Maria Odea Ching, Brett Porter; September 2009)<br />
              <span style="font-size: 0.8em">
                Build and manage applications with Maven, Continuum and Archiva
              </span>
            </p>
          </div>
          
<div style="float: left; width: 50%;">
            
<p>
              <a class="externalLink" href="http://www.wakaleo.com/java-power-tools"><img src="images/books/java_power_tools.gif" alt="" /></a><br />
              <a class="externalLink" href="http://www.wakaleo.com/java-power-tools">Java Power Tools</a> (John Smart; April 2008)<br />
              <span style="font-size: 0.8em">
                Contains a section on Archiva and repository management
              </span>
            </p>
          </div>
        </div>
      </div>
      
<div style="clear: left">
        </div>
<div class="section">
<h3><a name="Articles.2C_Presentations_and_Tutorials"></a>Articles, Presentations and Tutorials</h3>
        
<ul>
          
<li>
            <a class="externalLink" href="http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=archiva">Archiva 1.1.1 Tutorial in Spanish!</a> - Video also available 
            <a class="externalLink" href="http://www.adictosaltrabajo.com/detalle-noticia.php?noticia=61">here</a> - (&#xc1;ngel Garc&#xed;a Jerez; September 2008)
          </li>
        </ul>
      </div>
    </div></div>

      
<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.4</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>Archiva 2.2.4 Standalone</td>
              
<td><a href="[preferred]archiva/2.2.4/binaries/apache-archiva-2.2.4-bin.zip">zip</a></td>
              
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.2.4/binaries/apache-archiva-2.2.4-bin.zip.md5">md5</a></td>
              
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.2.4/binaries/apache-archiva-2.2.4-bin.zip.asc">asc</a></td>
            </tr>
            
<tr class="a">
              
<td>Archiva 2.2.4 WAR</td>
              
<td><a href="[preferred]archiva/2.2.4/binaries/apache-archiva-2.2.4.war">war</a></td>
              
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.2.4/binaries/apache-archiva-2.2.4.war.md5">md5</a></td>
              
<td><a class="externalLink" href="http://www.apache.org/dist/archiva/2.2.4/binaries/apache-archiva-2.2.4.war.asc">asc</a></td>
            </tr>
          </table>

        </div>
        
<div class="modal-footer">
          
<div class="row">
            
<div class="pull-rigth">
              <a href="docs/2.2.4/release-notes.html">Release Notes</a> | <a href="download.html">More downloads or change mirror.</a>
            </div>
            
            
          </div>
        </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">
        &nbsp;
      </div>
      <div class="row">
      <p>
        <a href="http://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 id="ohloh" class="pull-right">
      <script type="text/javascript" src="https://www.ohloh.net/p/6670/widgets/project_thin_badge.js"></script>
    </div>
        </div>
    </footer>
    </body>
</html>
