<!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-Creation-yyyymmdd" content="20120119" />
    <meta name="Date-Revision-yyyymmdd" content="20140728" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva - Archiva Community - Get Involved</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">
          
    
    
            
    
        
    <a href="http://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_orange_ff7600.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="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.0/"  title="Release 2.1.0">Release 2.1.0</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.1.1-SNAPSHOT/"  title="Dev 2.1.1-SNAPSHOT">Dev 2.1.1-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 ">Archiva Community - Get Involved</li>
        
                
                    
                  <li id="publishDate" class="pull-right">Last Published: 28 Jul 2014</li>
            
                            </ul>
      </div>

      
                
        <div id="bodyColumn" >
                                  
            <!-- 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. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/guides/mini/guide-apt-format.html --><div class="section">
<h2>Getting Involved in the Archiva Project<a name="Getting_Involved_in_the_Archiva_Project"></a></h2>
<p>Archiva is an open source project and relies heavily on an active community. If you need help, you should look to the community. Equally, please look for ways that you may contribute back.</p>
<p>This page provides some pointers for receiving help and contributing to the Archiva community.</p>
<div class="section">
<h3>Getting Help<a name="Getting_Help"></a></h3>
<p>There are a number of ways to find help if you have an issue. </p>
<ul>
<li><b>Read the documentation</b><br />Read the <a class="externalLink" href="http://archiva.apache.org/docs/2.1.1-SNAPSHOT/userguide">user</a> and <a class="externalLink" href="http://archiva.apache.org/docs/2.1.1-SNAPSHOT/adminguide">administration</a> documentation. </li>
<li><b>Search the Wiki</b><br />Search the <a class="externalLink" href="http://cwiki.apache.org/confluence/display/ARCHIVA">Archiva Wiki</a>. Lots of useful information has been contributed by users here.</li>
<li><b>Submit an issue</b><br />Search the <a href="./issue-tracking.html">Jira</a> issue tracking system. The problem you are experiencing may be a known issue and others may have suggested work-arounds. If the issue is new, you should consider submitting a report.</li>
<li><b>Search the mailing lists</b><br />Search the mailing lists. Look <a href="./mail-lists.html">here</a> for a list of Archiva mailing lists. If you cannot find everything you need, ask a question on the appropriate list.</li></ul>
<div class="section">
<h4>More Information<a name="More_Information"></a></h4>
<p>If you are new to Archiva (or Maven), there are a number of helpful resources on the Maven website which provide step-by-step guides to getting help, useful information regarding etiquette, and lots of other resources.</p>
<p>Check out:</p>
<ul>
<li><a class="externalLink" href="http://maven.apache.org/community.html">The Maven Community</a></li>
<li><a class="externalLink" href="http://maven.apache.org/users/getting-help.html">Getting Help with Maven</a></li></ul></div></div>
<div class="section">
<h3>How to Contribute<a name="How_to_Contribute"></a></h3>
<p>As with any open source project, there are several ways you can help:</p>
<ul>
<li><b>Join a mailing list</b><br />Join a <a href="./mail-lists.html">mailing list</a> and answer other user's questions. You can also meet up with developers and users on <tt>#archiva</tt> on <tt>irc.codehaus.org</tt></li>
<li><b>Fix bugs</b><br />Report bugs, feature requests and other issues in the <a href="./issue-tracking.html">Jira</a> issue tracking system. Also, read up on <a href="./developers/how-we-do-things.html">how we do things</a> in Archiva.</li>
<li><b>Build it</b><br />Check out the <a href="./source-repository.html">source code</a> and <a href="./developers/building.html">build Archiva</a> for yourself. Fix bugs and submit patches for reported issues (both those you find, or that others have filed).</li>
<li><b>Write documentation</b><br />Help with the documentation by pointing out areas that are lacking or unclear, and if you are so inclined, submitting patches to correct it. You can quickly contribute rough thoughts to the <a class="externalLink" href="http://cwiki.apache.org/confluence/display/ARCHIVA"> wiki</a>, or you can volunteer to help collate and organise information that is already there.</li>
<li><b>Contribute Patches</b> You can attache source patches to our JIRA. Or contribute using github pull requests our github source mirror is available here <a class="externalLink" href="https://github.com/apache/archiva">https://github.com/apache/archiva</a></li></ul>
<p>Your participation in the community is much appreciated!</p>
<div class="section">
<h4>More Information<a name="More_Information"></a></h4>
<p>If you are new to Archiva (or Maven), there are a number of helpful resources on the Maven website regarding contribution back to the community.</p>
<p>Check out:</p>
<ul>
<li><a class="externalLink" href="http://maven.apache.org/community.html">The Maven Community</a> </li>
<li><a class="externalLink" href="http://maven.apache.org/guides/development/guide-helping.html">Guide to helping with Maven</a></li></ul></div></div></div>
                  </div>
          </div>

    <hr/>

    <footer>
            <div class="container">
                      <div class="row">
                              <p >Copyright &copy;                    2006&#x2013;2014
                        <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>