<!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="20150226" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva - Project Mailing Lists</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>

                          
        
<script type="text/javascript">var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
        document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));</script>
                      
        
<script type="text/javascript">var pageTracker = _gat._getTracker("UA-140879-5");
        pageTracker._initData();
        pageTracker._trackPageview();</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">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="mail-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.1.1/"  title="Release 2.1.1">Release 2.1.1</a>
</li>
                                  <li>      <a href="docs/1.3.9/"  title="Preview 1.3.9">Preview 1.3.9</a>
</li>
                                  <li>      <a href="docs/2.2.0-SNAPSHOT/"  title="Dev 2.2.0-SNAPSHOT">Dev 2.2.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="redback/components"  title="Redback Components">Redback 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="integration.html"  title="Continuous Integration">Continuous Integration</a>
</li>
                                  <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</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="team-list.html"  title="Project Team">Project Team</a>
</li>
                                  <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</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/" 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>
          
                                                                            
                   
                      </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="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="Archiva">
        Archiva</a>
                    <span class="divider">/</span>
      </li>
        <li class="active ">Project Mailing Lists</li>
        
                
                    
                  <li id="publishDate" class="pull-right">Last Published: 26 Feb 2015</li>
            
                            </ul>
      </div>

      
                
        <div id="bodyColumn" >
                                  
            <div class="section">
<h2>Project Mailing Lists<a name="Project_Mailing_Lists"></a></h2><a name="Project_Mailing_Lists"></a>
<p>These are the mailing lists that have been established for this project. For each list, there is a subscribe, unsubscribe, and an archive link.</p>
<table border="0" class="table table-striped">
<tr class="a">
<th>Name</th>
<th>Subscribe</th>
<th>Unsubscribe</th>
<th>Post</th>
<th>Archive</th>
<th>Other Archives</th></tr>
<tr class="b">
<td>Archiva User List</td>
<td><a class="externalLink" href="mailto:users-subscribe@archiva.apache.org">Subscribe</a></td>
<td><a class="externalLink" href="mailto:users-unsubscribe@archiva.apache.org">Unsubscribe</a></td>
<td><a class="externalLink" href="mailto:users@archiva.apache.org">Post</a></td>
<td><a class="externalLink" href="http://mail-archives.apache.org/mod_mbox/archiva-users/">mail-archives.apache.org</a></td>
<td><a class="externalLink" href="http://www.mail-archive.com/users@archiva.apache.org">www.mail-archive.com</a></td></tr>
<tr class="a">
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td><a class="externalLink" href="http://old.nabble.com/archiva-users-f16426.html">old.nabble.com</a></td></tr>
<tr class="b">
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td><a class="externalLink" href="http://markmail.org/list/org.apache.archiva.users">markmail.org</a></td></tr>
<tr class="a">
<td>Archiva Developer List</td>
<td><a class="externalLink" href="mailto:dev-subscribe@archiva.apache.org">Subscribe</a></td>
<td><a class="externalLink" href="mailto:dev-unsubscribe@archiva.apache.org">Unsubscribe</a></td>
<td><a class="externalLink" href="mailto:dev@archiva.apache.org">Post</a></td>
<td><a class="externalLink" href="http://mail-archives.apache.org/mod_mbox/archiva-dev">mail-archives.apache.org</a></td>
<td><a class="externalLink" href="http://www.mail-archive.com/dev@archiva.apache.org">www.mail-archive.com</a></td></tr>
<tr class="b">
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td><a class="externalLink" href="http://old.nabble.com/archiva-dev-f16427.html">old.nabble.com</a></td></tr>
<tr class="a">
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td><a class="externalLink" href="http://markmail.org/list/org.apache.archiva.dev">markmail.org</a></td></tr>
<tr class="b">
<td>Archiva Commits List</td>
<td><a class="externalLink" href="mailto:commits-subscribe@archiva.apache.org">Subscribe</a></td>
<td><a class="externalLink" href="mailto:commits-unsubscribe@archiva.apache.org">Unsubscribe</a></td>
<td>-</td>
<td><a class="externalLink" href="http://mail-archives.apache.org/mod_mbox/archiva-commits">mail-archives.apache.org</a></td>
<td><a class="externalLink" href="http://www.mail-archive.com/commits@archiva.apache.org">www.mail-archive.com</a></td></tr>
<tr class="a">
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td><a class="externalLink" href="http://markmail.org/list/org.apache.archiva.commits">markmail.org</a></td></tr>
<tr class="b">
<td>Archiva Issues List</td>
<td><a class="externalLink" href="mailto:issues-subscribe@archiva.apache.org">Subscribe</a></td>
<td><a class="externalLink" href="mailto:issues-unsubscribe@archiva.apache.org">Unsubscribe</a></td>
<td>-</td>
<td><a class="externalLink" href="http://mail-archives.apache.org/mod_mbox/archiva-issues">mail-archives.apache.org</a></td>
<td><a class="externalLink" href="http://www.mail-archive.com/issues@archiva.apache.org">www.mail-archive.com</a></td></tr>
<tr class="a">
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td><a class="externalLink" href="http://old.nabble.com/Archiva---Issues-f29617.html">old.nabble.com</a></td></tr>
<tr class="b">
<td>Archiva Notifications List</td>
<td><a class="externalLink" href="mailto:notifications-subscribe@archiva.apache.org">Subscribe</a></td>
<td><a class="externalLink" href="mailto:notifications-unsubscribe@archiva.apache.org">Unsubscribe</a></td>
<td>-</td>
<td><a class="externalLink" href="http://mail-archives.apache.org/mod_mbox/archiva-notifications/">mail-archives.apache.org</a></td>
<td><a class="externalLink" href="http://www.mail-archive.com/notifications@archiva.apache.org">www.mail-archive.com</a></td></tr>
<tr class="a">
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td><a class="externalLink" href="http://archiva.notifications.markmail.org/">archiva.notifications.markmail.org</a></td></tr></table></div>
                  </div>
          </div>

    <hr/>

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

                                                                  
<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 pull-left">
  <a href="http://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
</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>