Maven 3.x, community participation & multi-threaded execution


November 12, 2009 By Jason van Zyl

One of key goals of Maven 3.x is to clean up the code in order to make it possible for others to participate. There are quite a few Maven committers but most of them work on plugins: there aren’t really that many people who work on the core. For the Maven 3.x core it’s been Benjamin, Igor, and myself for the most part. We have been fortunate that Olivier helped us separate out the reporting internals from the core and we do think that it will be easier for people to participate with the changes we’ve made to the codebase and the enormous amount of testing that we’ve added. Although pretty much 100% of the work done on Maven 3.x has been done by Sonatype that’s no way to build a healthy community.

The first sign I had that things are, in fact, changing was a couple days ago when another committer who traditionally doesn’t work on the core made the start at a very cool new feature. Dan Fabulich took a look at the core and attempted to add multi-threaded build capabilities and for the most part was successful. This may not make it into the alpha-3 or alpha-4, but it will be included shortly and is proof that the work we have done providing a healthy groundwork has paid off. Our integration tests caught a couple of the problems that cropped up as a result of multi-threaded builds and those were quickly resolved. So that’s really good news and I think this situation will only improve as we move toward Maven 3.0. We also have lots of people patching Tycho (Sonatype’s toolchain for building Eclipse Plugins and OSGi bundles) and I believe it’s directly a result of providing a prodigious quantity of tests so that people can experiment freely.

So this is all good news for the Maven community. Once the multi-threaded build support is integrated we are going to be able to combine that with the make-like reactor mode that has been built into Maven 3.x (another feature added via plugin in Maven 2.x by Dan Fabulich which was ported to Maven 3.x by Benjamin), and the new caching system which will make for a deadly fast Maven 3.x.