<!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="author" content="Brett Porter" />
    <meta name="Date-Revision-yyyymmdd" content="20150226" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva Documentation - 
    User Guide</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>

    
    <!-- move js and css to head --><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/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>          <!-- Google Analytics -->
    <script type="text/javascript">

      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-140879-5']);
      _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();

    </script>
          </head>
        <body class="topBarDisabled">
          
                
                    
    
        <div class="container-fluid">
          <div id="banner">
        <div class="pull-left">
                                                  <a href="../../" 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="Apache Archiva">
        Apache Archiva</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="../../index.html" title="Apache Archiva">
        Apache Archiva</a>
                    <span class="divider">/</span>
      </li>
        <li class="active ">
    User Guide</li>
        
                
                    
                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2015-02-26</li>
              <li id="projectVersion" class="pull-right">
                    Version: 2.2.0
        </li>
            
                            </ul>
      </div>

                  
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
                
                    
                <ul class="nav nav-list">
                    <li class="nav-header">Introduction</li>
                              
      <li>
  
                          <a href="quick-start.html" title="Quick Start">
          <i class="none"></i>
        Quick Start</a>
            </li>
                
      <li>
  
                          <a href="tour/index.html" title="Feature Tour">
          <i class="none"></i>
        Feature Tour</a>
            </li>
                
      <li>
  
                          <a href="release-notes.html" title="Release Notes">
          <i class="none"></i>
        Release Notes</a>
            </li>
                
      <li>
  
                          <a href="../../download.html" title="Downloads">
          <i class="none"></i>
        Downloads</a>
            </li>
                              <li class="nav-header">Users Guide</li>
                              
      <li>
  
                          <a href="userguide/browsing.html" title="Browsing">
          <i class="none"></i>
        Browsing</a>
            </li>
                
      <li>
  
                          <a href="userguide/searching.html" title="Searching">
          <i class="none"></i>
        Searching</a>
            </li>
                
      <li>
  
                          <a href="userguide/delete-artifact.html" title="Deleting an Artifact">
          <i class="none"></i>
        Deleting an Artifact</a>
            </li>
                
      <li>
  
                          <a href="userguide/using-repository.html" title="Using as a repository">
          <i class="none"></i>
        Using as a repository</a>
            </li>
                
      <li>
  
                          <a href="userguide/deploy.html" title="Deploying to repository">
          <i class="none"></i>
        Deploying to repository</a>
            </li>
                
      <li>
  
                          <a href="userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
          <i class="none"></i>
        Configuring Virtual Repositories</a>
            </li>
                
      <li>
  
                          <a href="userguide/rss.html" title="Rss Feeds in Archiva">
          <i class="none"></i>
        Rss Feeds in Archiva</a>
            </li>
                
      <li>
  
                          <a href="userguide/querying-artifacts.html" title="Querying Artifacts">
          <i class="none"></i>
        Querying Artifacts</a>
            </li>
                              <li class="nav-header">Administrators Guide</li>
                                                                                                                    
      <li>
  
                          <a href="adminguide/installing.html" title="Installing Archiva">
          <i class="icon-chevron-right"></i>
        Installing Archiva</a>
                  </li>
                
      <li>
  
                          <a href="adminguide/databases.html" title="Databases">
          <i class="none"></i>
        Databases</a>
            </li>
                
      <li>
  
                          <a href="adminguide/repositories-content-storage.html" title="Repositories Content Storage">
          <i class="none"></i>
        Repositories Content Storage</a>
            </li>
                                                                                                      
      <li>
  
                          <a href="adminguide/security.html" title="Security">
          <i class="icon-chevron-right"></i>
        Security</a>
                  </li>
                                                                                                                                                                                                                                                                                          
      <li>
  
                          <a href="adminguide/configuration.html" title="Archiva Configuration">
          <i class="icon-chevron-right"></i>
        Archiva Configuration</a>
                  </li>
                
      <li>
  
                          <a href="adminguide/webservices/rest.html" title="REST Apis">
          <i class="none"></i>
        REST Apis</a>
            </li>
                
      <li>
  
                          <a href="adminguide/configuration-files.html" title="Configuration Files">
          <i class="none"></i>
        Configuration Files</a>
            </li>
                
      <li>
  
                          <a href="adminguide/system-status.html" title="System Status">
          <i class="none"></i>
        System Status</a>
            </li>
                                                                                                      
      <li>
  
                          <a href="adminguide/logging.html" title="Log Files">
          <i class="icon-chevron-right"></i>
        Log Files</a>
                  </li>
                
      <li>
  
                          <a href="adminguide/reports.html" title="Reports">
          <i class="none"></i>
        Reports</a>
            </li>
                              <li class="nav-header">Customising Archiva</li>
                              
      <li>
  
                          <a href="customising/writing-consumer.html" title="Writing a Consumer Plugin">
          <i class="none"></i>
        Writing a Consumer Plugin</a>
            </li>
                              <li class="nav-header">More Information</li>
                              
      <li>
  
                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
          <i class="none"></i>
        Archiva Wiki</a>
            </li>
                              <li class="nav-header">ASF</li>
                              
      <li>
  
                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
          <i class="none"></i>
        How Apache Works</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
          <i class="none"></i>
        Foundation</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
          <i class="none"></i>
        Sponsoring Apache</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
          <i class="none"></i>
        Thanks</a>
            </li>
                              <li class="nav-header">Project Documentation</li>
                                                                                                  
      <li>
  
                          <a href="project-info.html" title="Project Information">
          <i class="icon-chevron-right"></i>
        Project Information</a>
                  </li>
            </ul>
                
                    
                            <form id="search-form" action="http://www.google.com/search" method="get" >
    
  <input value="http://archiva.apache.org/docs/2.2.0/" 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>
          
          <hr />

           <div id="poweredBy">
                            <div class="clear"></div>
                            <div class="clear"></div>
               
        
        
        <div id="twitter">
    
    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow archiva</a>
    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

        </div>
                   <div class="clear"></div>
                            <div class="clear"></div>
                             <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>
                  </div>
          </div>
        </div>
        
                        
        <div id="bodyColumn"  class="span10" >
                                  
            <!-- ~ 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="null"></a></h2>
      
<div>
        
<p>
          Archiva is a build artifact repository manager for use with
          build tools such as <a class="externalLink" href="http://maven.apache.org" target="_blank">Maven</a>, <a class="externalLink" href="http://jenkins-ci.org" target="_blank">Jenkins</a>,
          <a class="externalLink" href="http://continuum.apache.org" target="_blank">Continuum</a>, and <a class="externalLink" href="http://ant.apache.org" target="_blank">ANT</a>.
        </p>
        
<p>
          With Archiva, you can share artifacts with other developers and manage the associated
          security required, aggregate (proxy) content from remote artifact repositories, visualise
          your artifact utilisation with search, browse and reporting, and perform routine
          maintenance on your repositories.
        </p>
        
<p><b>This documentation is based on the new UI only.</b></p>

        
<p>
          To get started with Archiva, you can read the following documentation:
          </p>
<ul>
            
<li><a href="./quick-start.html">A Quick Getting Started Guide</a></li>
            
<li><a href="./userguide/index.html">Users Guide</a></li>
            
<li><a href="./adminguide/index.html">Administrators Guide</a></li>
          </ul>
        
      </div>
      <br />
      
<div id="carousel-main">

          
<div id="screenshots-carousel" class="carousel slide">
            <!-- Carousel items -->
            
<div class="carousel-inner">
              
<div class="item active">
                <img src="images/tour/project-info.png" alt="" />
                
<div class="carousel-caption">
                  
<p><a href="./userguide/browsing.html">Informative display for artifacts stored in the repository.</a> </p>
                </div>
              </div>
              
<div class="item">
                <img src="images/tour/search-form.png" alt="" />
                
<div class="carousel-caption">
                  
<p><a href="./userguide/searching.html">User-friendly browsing interface, and powerful search functionalities.</a></p>
                </div>
              </div>
              
<div class="item">
                <img src="images/tour/search-results.png" alt="" />
                
<div class="carousel-caption">
                  
<p><a href="./userguide/searching.html">Filterable search results.</a></p>
                </div>
              </div>
              
<div class="item">
                <img src="images/tour/browse.png" alt="" />
                
<div class="carousel-caption">
                  
<p><a href="./userguide/browsing.html">Browse interface.</a></p>
                </div>
              </div>
              
<div class="item">
                <img src="images/tour/remote-proxy-cache.png" alt="" />
                
<div class="carousel-caption">
                  
<p><a href="./adminguide/proxy-connectors.html">Drag &amp; drop remote proxies ordering.</a></p>
                </div>
              </div>
              
<div class="item">
                <img src="images/tour/upload-files.png" alt="" />
                
<div class="carousel-caption">
                  
<p><a href="./userguide/deploy.html">Drag &amp; drop upload artifacts via UI.</a></p>
                </div>
              </div>
              
<div class="item">
                <img src="images/tour/graphical-admin.png" alt="" />
                
<div class="carousel-caption">
                  
<p><a href="./adminguide/repositories.html">Comprehensive web-based administration interface.</a></p>
                </div>
              </div>
              
<div class="item">
                <img src="images/delete-groupid.png" alt="" />
                
<div class="carousel-caption">
                  
<p><a href="./userguide/delete-artifact.html">Simple delete of artifacts.</a></p>
                </div>
              </div>
              
<div class="item">
                <img src="images/repository-groups.png" alt="" />
                
<div class="carousel-caption">
                  
<p><a href="./userguide/virtual-repositories.html">Virtual repositories with Drag &amp; drop.</a></p>
                </div>
              </div>
              
<div class="item">
                <img src="images/rss-browse.png" alt="" />
                
<div class="carousel-caption">
                  
<p><a href="./userguide/rss.html">RSS feeds</a></p>
                </div>
              </div>
              
<div class="item">
                <img src="images/repository-merge.png" alt="" />
                
<div class="carousel-caption">
                  
<p><a href="./adminguide/staging-repositories.html">Merge staging repositories</a></p>
                </div>
              </div>
              
<div class="item">
                <img src="images/appearance-configuration.png" alt="" />
                
<div class="carousel-caption">
                  
<p><a href="./adminguide/appearance-configuration.html">Appearence Configuration</a></p>
                </div>
              </div>
              
<div class="item">
                <img src="images/proxy-connectors-rules.png" alt="" />
                
<div class="carousel-caption">
                  
<p><a href="./adminguide/proxy-connector-rules.html">ProxyConnectors Rules</a></p>
                </div>
              </div>
            </div>

            <!-- Carousel nav -->
            <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>

  

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

    <hr/>

    <footer>
            <div class="container-fluid">
                      <div class="row-fluid">
                              <p >Copyright &copy;                    2006&#x2013;2015
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.      
                    
      </p>
        </div>

                                                                  
<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
                                                          
<div class="row span12">
  <a href="http://archiva.apache.org/docs/2.2.0/privacy-policy.html">Privacy Policy</a>
</div>
                  
        
          
    
    
                
    <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>