<!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="Date-Revision-yyyymmdd" content="20170517" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva :: Web &#x2013; Project Modules</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>

    
              <!-- 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="topBarEnabled">
          
                        
                    
                

    <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">Modules <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="archiva-security/index.html"  title="Archiva Web :: Security Configuration">Archiva Web :: Security Configuration</a>
</li>
                  
                      <li>      <a href="archiva-webdav/index.html"  title="Archiva Web :: WebDAV">Archiva Web :: WebDAV</a>
</li>
                  
                      <li>      <a href="archiva-rss/index.html"  title="Archiva Web :: RSS">Archiva Web :: RSS</a>
</li>
                  
                      <li>      <a href="archiva-test-mocks/index.html"  title="Archiva Web :: Tests Mocks">Archiva Web :: Tests Mocks</a>
</li>
                  
                      <li>      <a href="archiva-rest/index.html"  title="Archiva Web :: REST support">Archiva Web :: REST support</a>
</li>
                  
                      <li>      <a href="archiva-web-common/index.html"  title="Archiva Web :: Web Common">Archiva Web :: Web Common</a>
</li>
                  
                      <li>      <a href="archiva-webapp/index.html"  title="Archiva Web :: Javascript Application">Archiva Web :: Javascript Application</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="integration.html"  title="Continuous Integration">Continuous Integration</a>
</li>
                                  <li>      <a href="dependencies.html"  title="Dependencies">Dependencies</a>
</li>
                                  <li>      <a href="dependency-info.html"  title="Dependency Information">Dependency Information</a>
</li>
                                  <li>      <a href="dependency-management.html"  title="Dependency Management">Dependency Management</a>
</li>
                                  <li>      <a href="distribution-management.html"  title="Distribution Management">Distribution Management</a>
</li>
                                  <li>      <a href="index.html"  title="About">About</a>
</li>
                                  <li>      <a href="issue-tracking.html"  title="Issue Tracking">Issue Tracking</a>
</li>
                                  <li>      <a href="license.html"  title="Project License">Project License</a>
</li>
                                  <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
</li>
                                  <li>      <a href="modules.html"  title="Project Modules">Project Modules</a>
</li>
                                  <li>      <a href="plugin-management.html"  title="Plugin Management">Plugin Management</a>
</li>
                                  <li>      <a href="plugins.html"  title="Project Plugins">Project Plugins</a>
</li>
                                  <li>      <a href="team-list.html"  title="Project Team">Project Team</a>
</li>
                                  <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
</li>
                                  <li>      <a href="project-summary.html"  title="Project Summary">Project Summary</a>
</li>
                              </ul>
            </li>
                          </ul>
      </li>
                  </ul>
          
                      <form id="search-form" action="http://www.google.com/search" method="get"  class="navbar-search pull-right" >
    
  <input value="http://archiva.apache.org/ref/2.2.3" 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>
          
                                                    
        
        
        <ul class="nav pull-right"><li>
    
    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="right" data-size="large" 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>

        </li></ul>
                              
                   
                      </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="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="../" title="Archiva :: Modules">
        Archiva :: Modules</a>
                    <span class="divider">/</span>
      </li>
                <li class="">
                    <a href="./" title="Archiva :: Web">
        Archiva :: Web</a>
                    <span class="divider">/</span>
      </li>
        <li class="active ">Project Modules</li>
        
                
                    
                  <li id="publishDate" class="pull-right">Last Published: 17 May 2017</li>
            
                            </ul>
      </div>

      
                
        <div id="bodyColumn" >
                                  
            <div class="section">
<h2><a name="Project_Modules"></a>Project Modules</h2><a name="Project_Modules"></a>
<p>This project has declared the following modules:</p>
<table border="0" class="table table-striped">
<tr class="a">
<th>Name</th>
<th>Description</th></tr>
<tr class="b">
<td><a href="archiva-security/index.html">Archiva Web :: Security Configuration</a></td>
<td>Archiva is an application for managing one or more remote
      repositories, including administration, artifact handling,
      browsing and searching.</td></tr>
<tr class="a">
<td><a href="archiva-webdav/index.html">Archiva Web :: WebDAV</a></td>
<td>Archiva is an application for managing one or more remote
      repositories, including administration, artifact handling,
      browsing and searching.</td></tr>
<tr class="b">
<td><a href="archiva-rss/index.html">Archiva Web :: RSS</a></td>
<td>Archiva is an application for managing one or more remote
      repositories, including administration, artifact handling,
      browsing and searching.</td></tr>
<tr class="a">
<td><a href="archiva-test-mocks/index.html">Archiva Web :: Tests Mocks</a></td>
<td>Archiva is an application for managing one or more remote
      repositories, including administration, artifact handling,
      browsing and searching.</td></tr>
<tr class="b">
<td><a href="archiva-rest/index.html">Archiva Web :: REST support</a></td>
<td>Archiva is an application for managing one or more remote
      repositories, including administration, artifact handling,
      browsing and searching.</td></tr>
<tr class="a">
<td><a href="archiva-web-common/index.html">Archiva Web :: Web Common</a></td>
<td>Archiva is an application for managing one or more remote
      repositories, including administration, artifact handling,
      browsing and searching.</td></tr>
<tr class="b">
<td><a href="archiva-webapp/index.html">Archiva Web :: Javascript Application</a></td>
<td>Archiva is an application for managing one or more remote
      repositories, including administration, artifact handling,
      browsing and searching.</td></tr></table></div>
                  </div>
          </div>

    <hr/>

    <footer>
            <div class="container">
                      <div class="row">
                              <p >Copyright &copy;                    2006&#x2013;2017
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.      
                    
      </p>
        </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="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
    </div>
        </div>
    </footer>
        </body>
</html>