tags:

views:

260

answers:

2

maven 3 beta is out since a couple of weeks and just thought for getting your views on the feature list for maven 3. Coz to me only two major features were added

  1. Parallel execution of of project in the build lifecycle
  2. Custom lifecycle

Everything else seems like a bug fix or a minor improvement. So what do you think. Will maven 3 be worth waiting???

+1  A: 

The idea of Maven 3 was to replace Maven 2 without any problems...currently there are some (site in particular). I would suggest to test the current existing Maven 2 projects with Maven 3 to see if some problems occur. Internally the complete Code has been refactored etc. to make new improvements possible. Removed some parts from the core (like site generation etc.).

khmarbaise
+11  A: 

What's new in Maven 3? Here is a little compilation of what you can find around the net.

  • Backward compatibility - Maven 3 is backward compatible, that is extremely important (especially for those who experienced the Maven 1 to Maven 2 transition).
  • Versionless parent elements - Maven 3 will remove the need to specify the parent version in sub modules. THIS is great (in Maven 3.1).
  • Mixins - For POM composition (in Maven 3.1 AFAIK).
  • XML POM format using attributes - You can use attributes instead of elements.
  • Polyglot Maven - You can write your POM files now in different languages (I'm personally not annoyed by the XML format so I'm not sure I'll use this that often).
  • Extensions points - To decorate the lifecycle or plugins (to hook behavior instead of extending plugins).
  • Queryable lifecycle - Decoupling of execution plans and execution.
  • Changes in the Plugin-API - This is more targeted at plugins developers (annotations instead of javadoc tags, extensions points, queryable lifecycle).
  • Better error and integrity reporting - Errors are more clear and linked to the Maven 3 wiki for a detailed explanation. Users will enjoy this.
  • Mercury - Complete rewrite of the artifact resolution system (which is now a dedicated product) Actually, Maven 3 uses Aether instead of Mercury.
  • Maven Embedder - This is great for IDEs and build tools (that can "listen" to the build process).
  • Incremental build support - especially useful for M2Eclipse (big performance boost).
  • Site and reporting extracted from Maven core - site doesn't work yet (will be fixed for the final release), reporting does (but you are invited to favor external quality tools like Sonar).
  • Maven shell - An optimized execution environment (Maven Shell is awesome).

To summarize, you're not totally wrong, there aren't that many changes at the surface (although I really enjoy the better error reporting and just can't wait for the version-less parent elements stuff). But the changes under the hood make Maven 3 much faster and this is huge. And I expect great innovations to happen with the new offered possibilities (yet to come though).

At the end, the performance improvement is already enough to make it worth for me (building in less time is extremely valuable) and other things are bonuses. And since I'm not using the site plugin extensively, I'm already using Maven 3 for more than 4 months on some of my builds and I'm more than happy with it.

See also

Pascal Thivent
pom validation is much more strict in maven 3. Pointing out obvious error or omissions that maven 2 is letting through.This feature alone is worth running mvn 3 on your maven 2 project - just to fix the broken poms.
Patrick Roumanoff
@Patrick I fully agree (that's part of the *"Better error and integrity reporting"*).
Pascal Thivent