Maven 3 beta is out since a couple of weeks and I just want to get your views on the feature list for Maven 3. Because to me, only two major features were added
Everything else seems like a bug fix or a minor improvement. So what do you think? Will Maven 3 be worth the wait?
What's new in Maven 3? Here is a little compilation of what you can find around the net.
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.
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.).
No it is not compatible as matrix says. There is alot of incompatibilites between 2 and 3 and there is page pointing behavior. If you work on enterprise projects in a corporation you could be assured that you will run into these problems.
As far as perfomance well if you run enterprise builds that ain't 10k-100k code build... How about system 1.5 million lines? That's more common in enterprise. If your software builds 2-4 hours and you still need continuous integration you will be looking into parallel build and testing. Maven 3 comes handy at that point... but at this point it is not acceptable that tree resolution/classpath is different depending on goal (dependency:tree uses legacy mechanism while regular build goals rely on Aether). It is reminiscent of Ivy/Ant issues when one cannot rely on checking classpath prior to software packaing for deployments (you do not have local Maven repo in production, do you? ... but you still need to perform software audits, right?)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With