<!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 | Downloads</title>
    <!-- Meta -->
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="description" content="Takari is focused on continuous delivery for the Maven ecosystem and offers Apache Maven training classes" />
    <meta name="author" content="takari.io" />
    <meta property="twitter:account_id" content="4503599627980362" />  
    
    <!-- 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" />
    <link rel="stylesheet" href="/m2e/assets/plugins/flexslider/flexslider.css" />
    <link rel="stylesheet" href="/m2e/assets/plugins/parallax-slider/css/parallax-slider.css" />
    <!-- Syntax Highlighting -->
    <link rel="stylesheet" href="/m2e/assets/css/code/syntax-highlighting.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', 'takari.io');
      ga('send', 'pageview');

    </script>
  </head>

  <body>
    <div class="wrap">
      
            <div class="header">
        <div class="navbar navbar-default" role="navigation">
          <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="/index.html"> 
                <img id="logo-header" src="/m2e/assets/img/m2e_logo@2x.svg" alt="M2Eclipse" width="150" height="61" style="margin:20px 0px 10px;"/>
              </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-news.html">News</a>
                  </li>
                
                  
                  
                  <li class="">
                      <a href="/m2e-downloads.html">Download</a>
                  </li>
                
                  
                  
                  <li class="">
                      <a href="/documentation/m2e-documentation.html">Documentation</a>
                  </li>
                
                  
                  
                  <li class="">
                      <a href="/m2e-community.html">Community</a>
                  </li>
                
              </ul>
            </div>
          </div>
        </div>
      </div><!-- END header -->
      
      <div class="container" style="margin-top:20px;">
        <h1>Update Sites</h1>
<div class="dlBackground">
  <a href="http://download.eclipse.org/technology/m2e/releases"><div class="col-md-4 buttonBG">
    <h2>Latest Release Build<br />
    <span class="footnote">(recommended)</span></h2>
  </div></a>
  <a href="http://download.eclipse.org/technology/m2e/milestones/1.6"><div class="col-md-4 buttonBG">
    <h2>Latest Milestone Build<br />
    <span class="footnote">(toward 1.6)</span></h2>
  </div></a>
  <a href="https://otto.takari.io/content/sites/m2e.extras/m2e/1.6.0/N/LATEST/"><div class="col-md-4 buttonBG">
    <h2>Latest SNAPSHOT Build<br />
    <span class="footnote">(not tested, not hosted at eclipse.org)</span></h2>
  </div></a>
</div><h1>M2Eclipse Download Area Layout</h1>
<div class="highlight"><pre><a name="line-%s"></a>releases/
<a name="line-%s"></a> 1.0/
<a name="line-%s"></a>   1.0.0.&lt;qualifier&gt;/
<a name="line-%s"></a>   1.0.100.&lt;qualifier&gt;/
<a name="line-%s"></a>   1.0.200.&lt;qualifier&gt;/
<a name="line-%s"></a> 1.1/
<a name="line-%s"></a>   ...
<a name="line-%s"></a>
<a name="line-%s"></a>milestones/
<a name="line-%s"></a> 1.0/
<a name="line-%s"></a>   1.0.300.&lt;qualifier&gt;/
<a name="line-%s"></a>   1.0.300.&lt;qualifier&gt;/
<a name="line-%s"></a>   1.0.300.&lt;qualifier&gt;/
<a name="line-%s"></a> 
<a name="line-%s"></a> ...
<a name="line-%s"></a> 
<a name="line-%s"></a> 1.1/
<a name="line-%s"></a>   1.1.0.&lt;qualifier&gt;/
<a name="line-%s"></a>   1.1.0.&lt;qualifier&gt;/
<a name="line-%s"></a>   1.1.0.&lt;qualifier&gt;/
</pre></div><p>M2Eclipse will advertise <a href="http://download.eclipse.org/technology/m2e/releases/">http://download.eclipse.org/technology/m2e/releases/</a> as canonical M2Eclipse repository url. This repository is a composite that will contain all released M2Eclipse versions, so clients who use this url will be able to install releases and service releases from the same location. Clients will be able to use release-specific repositories (i.e. <a href="http://download.eclipse.org/technology/m2e/releases/1.0">http://download.eclipse.org/technology/m2e/releases/1.0</a>) if they are only interested in maintenance releases.</p><p><a href="http://download.eclipse.org/technology/m2e/milestones/">http://download.eclipse.org/technology/m2e/milestones/</a> contains milestone builds towards releases. It has similar structure as releases/ repository but without composite p2 repository at the top level. Users will need to pick release-specific milestone build "stream".</p><p>M2Eclipse does not provide snapshot/nightly builds from download.eclipse.org</p><h2>M2Eclipse Git Repository Tags</h2><p>M2Eclipse git repository tags will match download area directory structure, i.e. "releases/1.0/1.0.0.20110607-2117", "milestones/1.1/1.1.0.&lt;qualifier&gt;" and so on. Since builds are promoted from milestones to releases repositories, the same build can have multiple tags associated with it.</p><p>Tags are pushed to canonical git repository soon after build goes "live".</p><h2>M2Eclipse Release Train Contributions</h2><p>During development, M2Eclipse will provide release train contributions via milestone version repository (i.e. <a href="http://download.eclipse.org/technology/m2e/milestones/1.1">http://download.eclipse.org/technology/m2e/milestones/1.1</a>). Each new build will be automatically picked up by the release aggregator job and does not require changes to aggregator descriptor.</p><p>During release, latest milestone build is *copied* to corresponding releases/ directory and M2Eclipse contribution to release train aggregator will need to be updated at this point.</p><h2>M2Eclipse Releases</h2>
<table>
  <tbody>
    <tr>
      <th>Release</th>
      <th>Full Version</th>         
      <th>Date</th>      
      <th>Tag</th>                         
      <th>p2 URL</th>
    </tr> 
    <tr>
      <td>1.0
      <td>1.0.0.20110607-2117
      <td>2011-06-22
      <td>releases/1.0/1.0.0.20110607-2117
      <td><a href="http://download.eclipse.org/technology/m2e/releases/1.0/1.0.0.20110607-2117">http://download.eclipse.org/technology/m2e/releases/1.0/1.0.0.20110607-2117</a></td>
    </tr>
    <tr>                                                                                  
      <td>1.0 SR1</td> 
      <td>1.0.100.20110804-1717</td>
      <td>2011-09-23</td>
      <td>releases/1.0/1.0.100.20110804-1717</td>
      <td><a href="http://download.eclipse.org/technology/m2e/releases/1.0/1.0.100.20110804-1717">http://download.eclipse.org/technology/m2e/releases/1.0/1.0.100.20110804-1717</a></td>
    </tr>
    <tr>                                                                                 
      <td>1.0 SR2</td>
      <td>1.0.200.20111228-1245</td>
      <td>2012-02-24</td>
      <td>releases/1.0/1.0.200.20111228-1245</td>
      <td><a href="http://download.eclipse.org/technology/m2e/releases/1.0/1.0.200.20111228-1245">http://download.eclipse.org/technology/m2e/releases/1.0/1.0.200.20111228-1245</a></td>
    </tr>
    <tr>                                                                                 
      <td>1.1</td>
      <td>1.1.0.20120530-0009</td>
      <td>2012-06-27</td>
      <td>releases/1.1/1.1.0.20120530-0009</td>
      <td><a href="http://download.eclipse.org/technology/m2e/releases/1.1/1.1.0.20120530-0009">http://download.eclipse.org/technology/m2e/releases/1.1/1.1.0.20120530-0009</a></td>
    </tr>
    <tr>                                                                                  
      <td>1.2</td>
      <td>1.2.0.20120903-1050</td>
      <td>2012-09-19</td>
      <td>releases/1.2/1.2.0.20120903-1050</td>
      <td><a href="http://download.eclipse.org/technology/m2e/releases/1.2/1.2.0.20120903-1050">http://download.eclipse.org/technology/m2e/releases/1.2/1.2.0.20120903-1050</a></td>
    </tr>
    <tr>                                                                                 
      <td>1.3</td>
      <td>1.3.0.20130129-0926</td>
      <td>2013-02-20</td>
      <td>releases/1.3/1.3.0.20130129-0926</td>
      <td><a href="http://download.eclipse.org/technology/m2e/releases/1.3/1.3.0.20130129-0926">http://download.eclipse.org/technology/m2e/releases/1.3/1.3.0.20130129-0926</a></td>
    </tr>
    <tr>                                                                                 
      <td>1.3.1</td>
      <td>1.3.1.20130219-1424</td>
      <td>2013-02-20</td>
      <td>releases/1.3/1.3.1.20130219-1424</td>
      <td><a href="http://download.eclipse.org/technology/m2e/releases/1.3/1.3.1.20130219-1424">http://download.eclipse.org/technology/m2e/releases/1.3/1.3.1.20130219-1424</a></td>
    </tr>
    <tr>                                                                                 
      <td>1.4</td>
      <td>1.4.0.20130601-0317</td>
      <td>2013-06-26</td>
      <td>releases/1.4/1.4.0.20130601-0317</td>
      <td><a href="http://download.eclipse.org/technology/m2e/releases/1.4/1.4.0.20130601-0317">http://download.eclipse.org/technology/m2e/releases/1.4/1.4.0.20130601-0317</a></td>
    </tr>
    <tr>                                                                                 
      <td>1.4.1</td>
      <td>1.4.1.20140328-1905</td>
      <td>2014-03-31</td>
      <td>releases/1.4/1.4.1.20140328-1905</td>
      <td><a href="http://download.eclipse.org/technology/m2e/releases/1.4/1.4.1.20140328-1905">http://download.eclipse.org/technology/m2e/releases/1.4/1.4.1.20140328-1905</a></td>
    </tr>
    <tr>                                                                                 
      <td>1.5</td>
      <td>1.5.0.20140606-0033</td>
      <td>2014-06-25</td>
      <td>releases/1.5/1.5.0.20140606-0033</td>
      <td><a href="http://download.eclipse.org/technology/m2e/releases/1.5/1.5.0.20140606-0033">http://download.eclipse.org/technology/m2e/releases/1.5/1.5.0.20140606-0033</a></td>
    </tr>
    <tr>                                                                                 
      <td>1.5</td>
      <td>1.5.0.20140606-0033</td>
      <td>2014-06-25</td>
      <td>releases/1.5/1.5.0.20140606-0033</td>
      <td><a href="http://download.eclipse.org/technology/m2e/releases/1.5/1.5.0.20140606-0033">http://download.eclipse.org/technology/m2e/releases/1.5/1.5.0.20140606-0033</a></td>
    </tr>
  </tbody>
</table><h1>Supported Environments</h1><h2>M2Eclipse 1.6.0/Mars</h2><p>M2Eclipse 1.6.0/Mars is tested and validated against Eclipse 4.4 (Luna)</p><p>M2Eclipse 1.6.0/Mars requires minimum java 7</p><p>M2Eclipse 1.6.0/Mars is tested and validated on the following reference platforms (this list is updated over the course of the release cycle):</p>
<table>
  <tbody>
  <tr>
    <th>Operating System</th>
    <th>Version</th>
    <th>Hardware</th>
    <th>JRE</th>
    <th>Windowing System</th>
    <th>Latest Results</th>
  </tr>
  <tr>
    <td>Linux</td>
    <td>CentOS 6.5, Ubuntu 14.04</td>
    <td>x86 64-bit</td>
    <td>Oracle Java 1.7.0_45, 1.8.0_05</td>
    <td>GTK+ 2</td>
    <td>1.7, [TBD 1.8]</td>
  </tr>
  <tr>
    <td>OSX</td>
    <td>10.9</td>
    <td>x86 64-bit</td>
    <td>Oracle Java 1.7.0_45, 1.8.0_05</td>
    <td>Cocoa</td>
    <td>[TBD 1.7.0_45], [TBD 1.8.0_05]</td>
  </tr>
  <tr>
    <td>Windows</td>
    <td>Windows 7</td>
    <td>x86 64-bit</td>
    <td>Oracle Java 1.7.0_45, 1.8.0_05</td>
    <td>Windows 7</td>
    <td>[TBD 1.7.0_45], [TBD 1.8.0_05]</td>
  </tr>
  </tbody>
</table>
      </div><!-- END container -->
    </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;
                2014 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>
    <!-- JS Implementing Plugins -->
    <script type="text/javascript" src="/m2e/assets/plugins/flexslider/jquery.flexslider-min.js"></script>
    <script type="text/javascript" src="/m2e/assets/plugins/parallax-slider/js/modernizr.js"></script>
    <script type="text/javascript" src="/m2e/assets/plugins/parallax-slider/js/jquery.cslider.js"></script> 
    <!-- JS Page Level -->
    <script type="text/javascript" src="/m2e/assets/js/app.js"></script>
    <script type="text/javascript" src="/m2e/assets/js/index.js"></script>
    <script type="text/javascript">
      jQuery(document).ready(function() {
      App.init();
      App.initSliders();
      Index.initParallaxSlider();
      });
    </script>
    <!--[if lt IE 9]>
        <script src="/m2e/assets/plugins/respond.js"></script>
    <![endif]-->
  </body>
</html>	