M2Eclipse released version 1.6.0 as part of the Eclipse Mars release train. There are 86 Bugs fixed as part of this release. Even though M2EClipse 1.6.0 targets Eclipse Mars, it should still be compatible with Eclipse Luna. Along with improving the overall performance in a number of areas, we made some nice usability improvements and bug fixes worth highlighting:
The embedded Apache Maven runtime has been updated to maven 3.3.3. The Core Extension mechanism is honored when running launch configurations (as in
Run as... >
Maven build). However, custom configurations and extensions in
.mvn will be ignored during regular Eclipse builds. If you’re interested in playing with polyglot Maven support for M2Eclipse, you can try the experimental M2Eclipse polyglot POC.
pom.xml editor has some nice improvements in the content-assist area: deeply nested plugin configuration elements, such as
manifest attributes, can now be auto-completed:
Pro tip : Make sure the plugin version is locked, so the content assist engine can infer which attributes are available.
Remember the time when every time you changed something in your pom.xml, you’d get an
Out-of-Date project configuration error marker? With M2Eclipse 1.6 we introduced an new mechanism that will automatically update the project configuration when configuration changes are made in a
pom.xml. This feature needs to be manually enabled in the Maven Preferences:
This feature is marked as experimental and disabled by default as we found that, in some rare cases, infinite build loops might be triggered. If and when that happens, simply disable the preference, that should end the build loop.
The embedded maven-archetype-plugin version was bumped to 2.3, which was a long overdue update. That fixed several outstanding archetype related issues.
The performance was improved when handling large archetype catalogs. Eg. reading Maven Central’s catalog (http://repo1.maven.org/maven2/) and its 10k archetypes is about 10 times faster.
Before M2Eclipse 1.6 for any given Mojo execution in the Maven Lifecycle you could have one “primary” configurator and an unlimited number of “secondary” configurators that would run in an undefined order, after the primary one.
M2Eclipse 1.6 introduced new
runsBefore attributes to the configurator extension point, to better control the configurators order.
runsAfter : Optional comma-separated list of ids of required project configurators this configurator should run after. ids suffixed with ? are considered optional
runsBefore : Optional comma-separated list of ids of optional project configurators this configurator should run before. ids suffixed with * are considered required
So for example runsAfter=“org.eclipse.m2e.jdt.javaConfigurator?” will guarantee any configurator will run after the Java configurator. Read this for more information.
So if you haven’t installed M2Eclipse 1.6.0 yet, head over to https://www.eclipse.org/m2e/download/ and have at it.