tags:

'Maven 3.x will be the version Maven for the people', says Jason van Zyl, and it does look promising!

At the moment there is a 3.0.alpha.6 version released, I could't find any roadmap or dates for the planned main release yet.

I didn't have a chance to "play around" enough with this release to be able to say that all that promised is there :), but I've summarized some main issues from the Maven 3.x previews I found in several blogs/presentations/apache info pages:

 

* Backward compatibility

- Loads of Integration testing is done to ensure backwards compatibility

- Stricter validation of the POM is added

- Configured plugins should have their versions specified (a warning appears otherwise)

 

* Site/reporting is now completely extracted from the Maven core

- Currently the Site plugin doesn’t work with Maven 3.x, yet should until the final release (though reports still work)

- It's recommended to switch to the use of external quality monitoring tools

 

* What will be new to users:

- Versionless parent elements
- Better error and integrity reporting
- XML Pom format using attributes instead of elements
- Scripted POM Formats (pom.{rb|groovy|py})
- Mixins - compositional forms of Maven POM configuration

* What will be new to plugin developers:

- Plugin extension points
- Annotations instead of old javadoc tags
- Lifecycle extension points
- Queryable lifecycle

 

* Mercury - is a standalone product , a replacement for the current Maven Artifact subsystem, and a complete replacement for the HTTP and DAV portions of the existing transport.

 

* Maven Embedder - The IDE can literally listen for the Build process, and be part of it, not just launch it.
(currently being used in m2eclipse, IDEA, Netbeans)

* Incremental build support (used heavily in M2Eclipse for performance improvements, these are changes to the plugin API)

 

If you're planning to upgrade your maven 2.x builld to maven 3.x, you should first take a look here cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html
On the same page you can find the 'Plugin Compatibility Matrix' that indicates which plugins are affected by the API changes in Maven 3.x and might not function properly.

 

References:

- Apache Maven 3.x wiki - cwiki.apache.org/MAVEN/maven-3x.html

- Jason van Zyl's Maven 3 Presentation - www.scribd.com/doc/14458957/Jasons-Maven-3-Presentation
- Presentation by Pierre-Antoine Gregoire "Introduction to project industrialization using Maven" - www.slideshare.net/zepag/introduction-to-project-industrialization-with-maven-2
- Blog post by Eingestellt von Reikje "What's new in Maven 3" - javasplitter.blogspot.com/2009/11/whats-new-in-maven-3.html