<!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 Documentation &#x2013; Feature Tour</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>
<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><script src="../js/tour-index.js" type="text/javascript"></script><link rel="stylesheet" href="../css/jquery.fancybox.2.1.5.css" type="text/css" media="screen" /><script 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">
                      <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 class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="http://archiva.apache.org/" id="bannerLeft"><img src="http://archiva.apache.org/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="../../../index.html" title="Archiva">Archiva</a><span class="divider">/</span></li>
      <li class=""><a href="../index.html" title="Archiva Documentation">Archiva Documentation</a><span class="divider">/</span></li>
    <li class="active ">Feature Tour</li>
        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2019-11-30</li>
          <li id="projectVersion" class="pull-right">Version: 3.0.0-SNAPSHOT</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"><span class="none"></span>Quick Start</a>  </li>
    <li class="active"><a href="#"><span class="none"></span>Feature Tour</a>
  </li>
    <li><a href="../release-notes.html" title="Release Notes"><span class="none"></span>Release Notes</a>  </li>
    <li><a href="../../../download.html" title="Downloads"><span class="none"></span>Downloads</a>  </li>
          <li class="nav-header">Users Guide</li>
    <li><a href="../userguide/browsing.html" title="Browsing"><span class="none"></span>Browsing</a>  </li>
    <li><a href="../userguide/searching.html" title="Searching"><span class="none"></span>Searching</a>  </li>
    <li><a href="../userguide/delete-artifact.html" title="Deleting an Artifact"><span class="none"></span>Deleting an Artifact</a>  </li>
    <li><a href="../userguide/using-repository.html" title="Using as a repository"><span class="none"></span>Using as a repository</a>  </li>
    <li><a href="../userguide/deploy.html" title="Deploying to repository"><span class="none"></span>Deploying to repository</a>  </li>
    <li><a href="../userguide/virtual-repositories.html" title="Configuring Virtual Repositories"><span class="none"></span>Configuring Virtual Repositories</a>  </li>
    <li><a href="../userguide/rss.html" title="Rss Feeds in Archiva"><span class="none"></span>Rss Feeds in Archiva</a>  </li>
    <li><a href="../userguide/querying-artifacts.html" title="Querying Artifacts"><span class="none"></span>Querying Artifacts</a>  </li>
          <li class="nav-header">Administrators Guide</li>
    <li><a href="../adminguide/installing.html" title="Installing Archiva"><span class="icon-chevron-right"></span>Installing Archiva</a>  </li>
    <li><a href="../adminguide/databases.html" title="Databases"><span class="none"></span>Databases</a>  </li>
    <li><a href="../adminguide/repositories-content-storage.html" title="Repositories Content Storage"><span class="none"></span>Repositories Content Storage</a>  </li>
    <li><a href="../adminguide/security.html" title="Security"><span class="icon-chevron-right"></span>Security</a>  </li>
    <li><a href="../adminguide/configuration.html" title="Archiva Configuration"><span class="icon-chevron-right"></span>Archiva Configuration</a>  </li>
    <li><a href="../adminguide/webservices/rest.html" title="REST Apis"><span class="none"></span>REST Apis</a>  </li>
    <li><a href="../adminguide/configuration-files.html" title="Configuration Files"><span class="none"></span>Configuration Files</a>  </li>
    <li><a href="../adminguide/system-status.html" title="System Status"><span class="none"></span>System Status</a>  </li>
    <li><a href="../adminguide/logging.html" title="Log Files"><span class="icon-chevron-right"></span>Log Files</a>  </li>
    <li><a href="../adminguide/reports.html" title="Reports"><span class="none"></span>Reports</a>  </li>
          <li class="nav-header">Customising Archiva</li>
    <li><a href="../customising/writing-consumer.html" title="Writing a Consumer Plugin"><span class="none"></span>Writing a Consumer Plugin</a>  </li>
          <li class="nav-header">More Information</li>
    <li><a href="https://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki"><span class="none"></span>Archiva Wiki</a>  </li>
          <li class="nav-header">ASF</li>
    <li><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works"><span class="none"></span>How Apache Works</a>  </li>
    <li><a href="https://www.apache.org/foundation/" class="externalLink" title="Foundation"><span class="none"></span>Foundation</a>  </li>
    <li><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache"><span class="none"></span>Sponsoring Apache</a>  </li>
    <li><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a>  </li>
          <li class="nav-header">Project Documentation</li>
    <li><a href="../project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a>  </li>
  </ul>
<form id="search-form" action="https://www.google.com/search" method="get" >
      <input value="https://archiva.apache.org/docs/3.0.0-SNAPSHOT/" 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>
          <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" >

  




    <style type="text/css"></style>
    
<div class="section">
<h2><a name="Archiva_Feature_Tour"></a>Archiva Feature Tour</h2>

      
<p>
        Archiva is a feature rich repository manager. Below is a short tour of some of the features that are available.
      </p>
  
      
<table border="0" class="table table-striped">
        
<tr class="a">
          
<td>
            <a href="../images/tour/project-info.png" class="gallery_image" rel="gallery_image" title="Archiva provides an informative display for artifacts stored in the repository.                       This includes a user-friendly display of the Maven informations, as well as the relationships between projects.">
              <img src="../images/tour/project-info.png" width="150" height="93" style="border: 1px solid silver; margin-bottom: 0.25em" alt="" /><br />
              1. Project Information
            </a>
          </td>
          
<td>
            <a href="../images/tour/search-form.png" class="gallery_image" rel="gallery_image" title="Archiva has both a user-friendly browsing interface, and powerful search functionalities. The contents of all artifacts are indexed,                           including Maven project information and Java class information to facilitate locating code within any repository.                           By using the Find Artifact feature, you can identify unknown artifacts based on the database of known checksums for known artifacts.">
              <img src="../images/tour/search-form.png" width="150" height="93" style="border: 1px solid silver; margin-bottom: 0.25em" alt="" /><br />
              2. Artifact Search
            </a>
          </td>
          
<td>
            <a href="../images/tour/remote-proxy-cache.png" class="gallery_image" rel="gallery_image" title="Archiva can operate as a proxy for remote repositories, allowing you to improve build                           performance by caching artifacts in a closer network location, and control artifact                           usage through the use of white and black lists on proxy connectors.">
              <img src="../images/tour/remote-proxy-cache.png" width="150" height="93" style="border: 1px solid silver; margin-bottom: 0.25em" alt="" /><br />
               3. Remote Proxying Cache
            </a>
          </td>
          
<td>
            <a href="../images/tour/upload-files.png" class="gallery_image" rel="gallery_image" title="Archiva now supports artifact uploads via UI. A pom file can also be included                           in the upload or Archiva can generate one during the upload.">
              <img src="../images/tour/upload-files.png" width="150" height="93" style="border: 1px solid silver; margin-bottom: 0.25em" alt="" /><br />
               4. Artifact Upload
            </a>
          </td>
        </tr>
        
<tr class="b">
          
<td>
            <a href="../images/tour/graphical-admin.png" class="gallery_image" rel="gallery_image" title="Archiva has a comprehensive web-based administration interface for configuring repositories,                           remote proxies, scheduled jobs and more. The configuration is kept in sync with the XML                           configuration files so that they can also be hand-edited if necessary.">
              <img src="../images/tour/graphical-admin.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
              5. Graphical Administration
            </a>
          </td>
          
<td>
            <a href="../images/tour/repos-group.png" class="gallery_image" rel="gallery_image" title="Archiva implements the concept of virtual repositories, wherein a set of                           Archiva repositories can be grouped together under one URL and that one URL                           can be used by clients (s.a. Maven) to download from these repositories.">
              <img src="../images/tour/repos-group.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
              6. Virtual Repositories
            </a>
          </td>
          
<td>
            <a href="../images/tour/search-results.png" class="gallery_image" rel="gallery_image" title="Archiva provide filterable search results.">
              <img src="../images/tour/search-results.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
              7. Filterable search results
            </a>
          </td>
          
<td>
            <a href="../images/tour/security.png" class="gallery_image" rel="gallery_image" title="Archiva uses the Redback security framework to provide flexible role-based security controls for repositories.                           You can use the graphical interface to maintain user accounts, as well as secure repositories for read and/or write                           access for individuals, or given roles.">
              <img src="../images/tour/security.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
              8. Role-based Security
            </a>
          </td>

        </tr>
        
<tr class="a">
          
<td>
            <a href="../images/tour/reports.png" class="gallery_image" rel="gallery_image" title="Archiva monitors the state of the managed repositories and keeps track of                           potential problems to allow improvement of metadata and to assist in                           troubleshooting problems.">
              <img src="../images/tour/reports.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
              9. Integrity Reports
            </a>
          </td>
          
<td>
            <a href="../images/tour/maintenance.png" class="gallery_image" rel="gallery_image" title="Archiva has utilities called consumers that can be used for maintaining the                           Archiva repositories. These can be configured or activated in the Repository                           Scanning section of the webapp. The configuration are stored in Archiva's                           xml configuration files, meaning you can also hand-edit these config files to                           enable or disable these consumers.">
              <img src="../images/tour/maintenance.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
              10. Maintenance
            </a>
          </td>
          
<td>
            <a href="../images/proxy-connectors-rules.png" class="gallery_image" rel="gallery_image" title="Archiva has a screen to configure in a bulk mode black/white list when fetching artifacts from remote repositories.">
              <img src="../images/proxy-connectors-rules.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
              11. ProxyConnectors Rules
            </a>
          </td>
        </tr>
      </table>
    </div>
  

        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
<div class="row">
      <div class="span6 offset1">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
      </div>
      <div class="row">
        &nbsp;
      </div>
      <div class="row">
      <div class="span6 offset2">
      <p>
        <a href="https://archiva.apache.org/docs/3.0.0-SNAPSHOT/privacy-policy.html">Privacy Policy</a>
        </p>
      </div>
      </div>
        </div>
                          <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>