<!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 | 1.5 Release Notes</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;">
        <div class="row">
  <div class="col-md-3">
    <div class="margin-bottom-30"></div>
    <h4 class="headline">Users</h2>
    <ul class="unstyled">
      <li><a href="/documentation/m2e-faq.html">FAQ</a></li>
      <li><a href="/documentation/m2e-execution-not-covered.html">Execution Not Covered</a></li>
    </ul>  
    <h4 class="headline">Developers</h2>
    <ul class="unstyled">
      <li><a href="/documentation/m2e-development-environment.html">Developement Environment Setup</a></li>
    </ul>  
    <h4 class="headline">Extension Developers</h2>
    <ul class="unstyled">
      <li><a href="/documentation/m2e-extension-development.html">Getting Started</a></li>
    </ul>      
    <h4 class="headline">Release Notes</h2>
    <ul class="unstyled">
      <li><a href="/documentation/release-notes-15.html">M2Eclipse 1.5</a></li>
    </ul>      
  </div>  
  <div class="col-md-9 docs">
  <p><a href="https://www.eclipse.org/m2e">M2Eclipse</a>, released version 1.5.0 a few weeks ago, as part of the annual Eclipse release train, this year known as Luna. <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&classification=Technology&columnlist=target_milestone%2Ccomponent%2Cassigned_to%2Cresolution%2Cshort_desc%2Cchangeddate&known_name=m2e%201.5&list_id=9536440&product=m2e&query_based_on=m2e%201.5&query_format=advanced&resolution=---&resolution=FIXED&resolution=INVALID&resolution=WONTFIX&resolution=DUPLICATE&resolution=WORKSFORME&resolution=MOVED&resolution=NOT_ECLIPSE&target_milestone=1.5.0%2FLuna%20M1&target_milestone=1.5.0%2FLuna%20M2&target_milestone=1.5.0%2FLuna%20M3&target_milestone=1.5.0%2FLuna%20M4&target_milestone=1.5.0%2FLuna%20M5&target_milestone=1.5.0%2FLuna%20M6&target_milestone=1.5.0%2FLuna%20M7&target_milestone=1.5.0%2FLuna%20RC2">77 Bugs</a> were fixed as part of that release, compatible with both Eclipse Kepler and Luna. I believe it’s a pretty solid one, with numerous interesting fixes and usability improvements that deserve a blog post. So here goes, in no particular order:</p><h1>Improved project import workflow</h1><p>Selecting Maven projects to import used to take an inordinate amount of time, due to a suboptimal - I love that word :-) - Maven Lifecycle Mapping Analysis (LMA). LMA is used to determine whether the projects would require further configuration to operate properly in Eclipse. That LMA is now only run after projects are imported, making selection of projects to import much, <strong>much</strong> faster (&lt; couple seconds vs 1-2 min for the wildfly 8.0 codebase and its 130 projects, for instance)</p><p>After import, lifecycle mapping error markers are collected on imported projects and the discovery service is invoked to find proposals to fix those errors.</p><p>Another improvement to this workflow is the ability to easily import multi-module projects to an Eclipse Working Set. The default name is inferred from the root project but can be overridden manually:</p><p><img src="images/m2e-workingset-import.png" alt="X""/></p><p>More <a href="http://bugs.eclipse.org/436679">performance</a> <a href="http://bugs.eclipse.org/436668">improvements</a> during import itself are to be expected to be included in M2Eclipse 1.6.0.</p><p>See bugs <a href="https://bugs.eclipse.org/409732">409732</a>, <a href="https://bugs.eclipse.org/408042">408042</a> and <a href="https://bugs.eclipse.org/417466">417466</a>.</p><h1>Improved memory consumption</h1><p>Maven project instance caching strategy has been revisited to reduce memory consumption. For a workspace with 300+ projects for instance, heap memory used went from 2.5GB down to well under 1GB without any noticeable side effects.</p><p>See <a href="https://dev.eclipse.org/mhonarc/lists/m2e-dev/msg01389.html">Igor’s announcement</a> and bug <a href="https://bugs.eclipse.org/410954">410954</a>.</p><h1>Nexus index download disabled by default</h1><p>Before M2Eclipse 1.5, by default, Nexus indexes were downloaded on new workspace startup, then subsequently once a week. Depending on your internet connection, that whole process could take 15 minutes or more, heavily pegging the CPU. Once the indexes were updated, the size of the workspace would increase by approximately 500 MB. Even though space is relatively cheap these days, those with many workspaces (eg., for testing) or large workspaces, this extra disk usage can add up quickly.</p><p>M2Eclipse 1.5.0 now has this feature disabled by default. You can still enable it in menu:Preferences[Maven &gt; Download repository index updates on startup]. One major downside of having this feature disabled by default though, is Archetype and Artifact/Plugin searches are now much less efficient, as they rely on this indexed content.</p><p>See bug <a href="https://bugs.eclipse.org/404417">404417</a></p><h1>New Maven Profile management UI</h1><p>The JBoss Tools team contributed its <a href="https://marketplace.eclipse.org/content/maven-profiles-management">Maven Profile management interface</a> to M2Eclipse 1.5.0. This new interface eases switching between profiles.</p><p>Rather than right-clicking on a project, going to the menu:Properties<a href="http://maven.apache.org">Maven</a> page, then manually (mis)typing a list of active or disabled profiles, you can now just use kbd:[Ctrl+Alt+P] to open the new Maven Profile selection interface.</p><p><img src="images/m2e-profile-selection.png" alt="X""/></p><p>The new interface is also accessible from the Maven context menu: Right-click project menu:Maven[Select Maven Profiles…]</p><p>The list of available profiles is inferred from profiles defined in:</p>
<ul>
  <li>the project pom.xml</li>
  <li>the project’s parent hierarchy</li>
  <li>user and global maven settings.xml</li>
</ul><p>When several projects are selected, only the common available profiles are displayed for selection. Common profiles are profiles defined in settings.xml or profiles having the same id in different pom.xml.</p><p>You can learn more about that feature from the original <a href="http://docs.jboss.org/tools/whatsnew/maven/maven-news-3.3.0.M3.html#itemname1">JBoss Tools blog</a></p><p>See bug <a href="https://bugs.eclipse.org/428094">428094</a></p><h1>Easily update outdated projects</h1><p>The Update Maven Project dialog (launched via Right-click project menu:Maven[Update Project…] or via kbd:[Alt-F5]), now shows a <em>dirty</em> overlay on projects which need updating.</p><p>Additionally, an "Add out-of-date" button adds all out-of-date (OOD) projects to the current selection. If an OOD project has not been selected, a warning is shown underneath the selection table with a link equivalent to "Add out-of-date". Warning text and "Add out-of-date" button tooltip show a count of unselected OOD projects.</p><p><img src="images/m2e-select-ood-projects.png" alt="X""/></p><p>See it in action: <a href="http://screencast.com/t/27S0qeca">http://screencast.com/t/27S0qeca</a></p><p>See bug <a href="https://bugs.eclipse.org/422667">422667</a></p><h1>No more <code>Unsupported IClasspathEntry kind=4</code></h1><p>There’s a very popular <a href="http://stackoverflow.com/questions/10564684/how-to-fix-error-updating-maven-project-unsupported-iclasspathentry-kind-4">question on StackOverflow</a> about an M2Eclipse bug that plagued many users of the maven-eclipse-plugin: M2Eclipse would throw <code>Unsupported IClasspathEntry kind=4</code> exceptions on classpath entries generated by the maven-eclipse-plugin (one of the reasons why you should never mix maven-eclipse-plugin and M2Eclipse).</p><p>M2Eclipse 1.5.0 no longer complains about these unsupported classpath entries, but unexpected classpath issues may still arise, should you mix duplicate jars from M2Eclipse and those added by the maven-dependency-plugin.</p><p>See bug <a href="https://bugs.eclipse.org/394042">https://bugs.eclipse.org/394042</a></p><h1>New checksum settings</h1><p>Ever connected to a network with limited Internet access or simply stayed at a hotel where you needed to get past a for-pay-firewall, resulting in HTML pages being downloaded instead of jars? There’s nothing better to pollute your local Maven repository. Maven CLI builds can use these flags:</p>
<ul>
  <li><p><code>-C</code> - fail build if checksums do not match</p></li>
  <li><p><code>-c</code> - warn if checksums do not match</p></li>
</ul><p>M2Eclipse now has a global Checksum Policy available in menu:Preferences<a href="http://maven.apache.org">Maven</a>, that will help you keep your sanity, and your local repository clean:</p><p><img src="images/m2e-checksum-policy-flag.png" alt="X""/></p><p>While M2Eclipse actually won’t create any Warning markers on projects when "Warn" is selected, it will override existing checksum policies set on repositories.</p><p>See bug <a href="https://bugs.eclipse.org/418674">https://bugs.eclipse.org/418674</a></p><h1>Improved settings for Errors/Warnings preferences</h1><p>M2Eclipse has been known for generating specific errors that have puzzled more than one user in the past:</p>
<ul>
  <li><p><code>Project Configuration is not up-to-date</code> - a change in pom.xml <strong>might</strong> require a full project configuration update.</p></li>
  <li><p><code>Plugin execution not covered by lifecycle</code> - M2Eclipse doe not know if it is safe to execute a maven plugin as part of the Eclipse build</p></li>
</ul><p>With the new menu:Preferences[Errors/Warnings] page, users can now decide according to their own needs whether these errors should be downgraded to <code>Warning</code>, or even be ignored entirely.</p><p><img src="images/m2e-warnerrors-prefs.png" alt="X""/></p><p>See bugs <a href="https://bugs.eclipse.org/433776">433776</a>, <a href="https://bugs.eclipse.org/434053">434053</a></p><h1>Maven runtime changes</h1><p>A few changes have been made with regards to the Maven runtime(s):</p>
<ul>
  <li><p>The embedded Maven runtime has been updated to maven 3.2.1.</p></li>
  <li><p>The Netty/AsynHttpClient transport layer as been replaced with OkHttp 1.5.4. OkHttp is now the default HTTP client on the Android platform. It brings HTTP 2.0 and SPDY support to artifact downloads. Please note though, NTLM authentication is <a href="https://github.com/square/okhttp/issues/206">not supported</a>.</p></li>
  <li><p>Maven runtime installations can now be customized with a name, and additional libraries can be added. Maven Launch configurations now reference the Maven runtime by name, instead of using a hard-coded location so the configuration is more portable.</p></li>
</ul><p>See bugs <a href="https://bugs.eclipse.org/427932">427932</a>, <a href="https://bugs.eclipse.org/418263">418263</a>, <a href="https://bugs.eclipse.org/432436">432436</a></p><h1>Accept contributions from Gerrit</h1><p>In order to lower the contribution barrier and increase contributor diversity, the M2Eclipse project now <a href="https://wiki.eclipse.org/M2E_Development_Environment#Submitting_patches">accepts changes</a> contributed via the <a href="https://code.google.com/p/gerrit/">Gerrit</a> review system. Head over the <a href="http://wiki.eclipse.org/Gerrit">wiki</a> that explains how to use it. Does it work? <a href="https://git.eclipse.org/r/#/q/m2e-core,n,z">Hell yeah</a>! After several significant <a href="http://git.eclipse.org/c/m2e/m2e-core.git/log/?qt=author&q=Anton+Tanasenko">contributions</a>, <a href="https://plus.google.com/107693438225172488731/posts">Anton Tanasenko</a> has joined the M2Eclipse team as commiter!</p><p>Welcome Anton!</p><p>See bug <a href="https://bugs.eclipse.org/374665">374665</a></p><h1>Conclusion</h1><p>With new blood on the m2e team, numerous fixed bugs and some big new features &amp; improvements, m2e 1.5.0 is a pretty exciting release. Hope you guys appreciate this year’s release, before an even better version next time.</p><p>So if you haven’t installed m2e 1.5.0 yet, head over to <a href="https://www.eclipse.org/m2e/download/">https://www.eclipse.org/m2e/download/</a> and have at it.</p><p>We’d love to hear your feedback on the <a href="https://dev.eclipse.org/mailman/listinfo/m2e-users">mailing list</a>, or whether you <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=m2e">report bugs or enhancement requests</a>.</p><p>Article originally taken from the <a href="http://tools.jboss.org/blog/2014-07-08-m2e-1_5-improvements.html">JBoss Blog</a>. Thanks to Fred Bricon for writing up our release notes :-)</p>
  </div>
</div>
      </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>	