<!DOCTYPE html>
<!--[if IE 8]> <html lang="en" class="ie8"> <![endif]-->  
<!--[if IE 9]> <html lang="en" class="ie9"> <![endif]-->  
<!--[if !IE]><!-->
<html lang="en"> <!--<![endif]-->
  <head>
    <title>M2Eclipse | Community</title>
    <!-- Meta -->
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="description" content="M2Eclipse provides tight integration for Apache Maven into the Eclipse IDE." />
    <meta name="author" content="eclipse.org" />
    <meta property="twitter:account_id" content="15710507" />      
    <!-- CSS Global Compulsory-->
    <link rel="stylesheet" href="/m2e/assets/plugins/bootstrap/css/bootstrap.css" />
    <link rel="stylesheet" href="/m2e/assets/css/style.css" />
    <link rel="stylesheet" href="/m2e/assets/css/m2eclipse.css" />
    <link rel="shortcut icon" href="/m2e/assets/img/favicon.ico" />        
    <!-- CSS Implementing Plugins -->
    <link rel="stylesheet" href="/m2e/assets/plugins/font-awesome/css/font-awesome.css" />    
    <!-- GA -->
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
      ga('create', 'UA-56202333-1', 'eclipse.org');
      ga('send', 'pageview');

    </script>
  </head>

  <body>
    <div class="wrap">
      
            <div class="header">
        <div class="navbar navbar-default navbar-fixed-top" role="navigation">
          <div class="navbar-inner">
          <div class="container">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              <a class="navbar-brand" href="/m2e/index.html"> 
                <img id="logo-header" src="/m2e/assets/img/m2e_logo.png" alt="M2Eclipse" width="150" height="61" />
              </a>
            </div>

            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse navbar-responsive-collapse">
              <ul class="nav navbar-nav navbar-left">
              
                  
                  
                  <li class="">
                      <a href="/m2e/m2e-news.html">News</a>
                  </li>
                
                  
                  
                  <li class="">
                      <a href="/m2e/m2e-downloads.html">Download</a>
                  </li>
                
                  
                  
                  <li class="">
                      <a href="/m2e/documentation/m2e-documentation.html">Documentation</a>
                  </li>
                
                  
                  
                  <li class="">
                      <a href="/m2e/m2e-community.html">Community</a>
                  </li>
                
              </ul>
            </div>
          </div>
          </div>
        </div>
      </div><!-- END header -->
      
      <div class="margin-bottom-20"></div>
        <div class="container">
          <div class="margin-bottom-100"></div>

          <!--=== Slider ===-->
<div class="background">
  <div class="row">
    <div class="col-md-12">
      <h1>Hey You! <span class="small">Interested in getting involved in the M2Eclipse project?</span></h1>
    </div>
  </div>
  <div class="row">
    <a href="https://dev.eclipse.org/mailman/listinfo/m2e-users" target="_blank"><div class="col-md-4 buttonBG">
      <h2>Join the User Mailing List</h2>
    </div></a>
    <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_file_loc=&bug_file_loc_type=allwordssubstr&bug_id=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bugidtype=include&chfieldfrom=&chfieldto=Now&chfieldvalue=&classification=Technology&cmdtype=doit&email1=&email2=&emailtype1=exact&emailtype2=substring&field0-0-0=noop&keywords=&keywords_type=allwords&long_desc=&long_desc_type=allwordssubstr&order=Reuse%20same%20sort%20as%20last%20time&product=m2e&query_format=advanced&short_desc=&short_desc_type=allwordssubstr&status_whiteboard=&status_whiteboard_type=allwordssubstr&type0-0-0=noop&value0-0-0=&votes=" target="_blank"><div class="col-md-4 buttonBG">
      <h2>File a bug on Bugzilla</h2>
    </div></a>
    <a href="https://twitter.com/m2eclipse" target="_blank"><div class="col-md-4 buttonBG">
      <h2>Follow M2Eclipse on Twitter</h2>
    </div></a>
  </div>
  <div class="row">
    <a href="https://dev.eclipse.org/mailman/listinfo/m2e-dev" target="_blank"><div class="col-md-4 buttonBG">
      <h2>Join the Developer Mailing List</h2>
    </div></a>
    <a href="https://github.com/eclipse/m2e-core" target="_blank"><div class="col-md-4 buttonBG">
      <h2>Source Code on Github</h2>
    </div></a>
    <a href="https://github.com/tesla/m2e-core-tests" target="_blank"><div class="col-md-4 buttonBG">
      <h2>Test Harness on Github</h2>
    </div></a>
  </div>
</div>
<div class="row"> 
  <div class="col-md-8">
    <h3><a href="#project-committers" name="project-committers">Project Committers</a></h3>
<ul>
  <li><a href="https://github.com/ifedorenko">Igor Fedorenko</a></li>
  <li><a href="https://twitter.com/fbricon">Fred Bricon</a></li>
  <li><a href="https://github.com/atanasenko">Anton Tanasenko</a></li>
  <li><a href="https://twitter.com/jvanzyl">Jason van Zyl</a></li>
</ul>
  </div>
  <div class="col-md-4">
  </div>
</div>
            
        </div>
    </div><!-- END wrap -->
    
        <div class="stickyFooter">
      <div class="footer">
        <div class="container">
          <div class="row">
            <div class="col-md-4 md-margin-bottom-40"></div><!--/col-md-4-->
            <div class="col-md-4 md-margin-bottom-40">            </div>
            <div class="col-md-4">
            </div>
          </div>
        </div>
      </div>
      <div class="copyright">
        <div class="container">
          <div class="row">
            <div class="col-md-6">
              <p class="copyright-space">
                <a href="https://www.eclipse.org/">Home</a> | <a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a> | <a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a> | <a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a> | <a href="https://www.eclipse.org/legal/">Legal</a> | <a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a>
              </p>
            </div>
            <div class="col-md-6" align="right">
              <p class="copyright-space">
                Copyright &copy;
                2016 The Eclipse Foundation. All Rights Reserved.
              </p>
            </div>
          </div>
        </div>
      </div>
    </div>


    <!-- JS Global Compulsory -->
    <script type="text/javascript" src="/m2e/assets/plugins/jquery-1.10.2.min.js"></script>
    <script type="text/javascript" src="/m2e/assets/plugins/jquery-migrate-1.2.1.min.js"></script>
    <script type="text/javascript" src="/m2e/assets/plugins/bootstrap/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="/m2e/assets/plugins/hover-dropdown.min.js"></script>
    <script type="text/javascript" src="/m2e/assets/plugins/back-to-top.js"></script>
    <!-- TESTING JS -->
    <script type="text/javascript" src="/m2e/assets/plugins/app.js"></script>
    <script type="text/javascript">
        jQuery(document).ready(function() {
            App.init();
        });
    </script>
    <!--[if lt IE 9]>
        <script src="/m2e/assets/plugins/respond.js"></script>
    <![endif]-->
  </body>
</html>	