Maven is going where, you say?

Warner asks Is Maven going away?

Gee, I wish someone had told me, considering I’ve been spending an increasing amount of time on it again recently.

I see daily postings on either the love or hate of Maven, mostly containing no really new insight. At the risk of taking the bait, there were two reasons I thought this one was worth responding to.

Firstly – the title. Sensationalist attempt at traffic? It could be. But it raises the interesting question of where Maven is going. On the one hand, Maven’s core has been stable and usable by a large number of people for a long time (coming up on 3 years now). It’s not perfect, but it is certainly more than good enough to be the tool of choice for many developers. Because of that, much of the effort has been going into the plugins steadily over time, and into supporting infrastructure (there are now 3 alternatives for repository managers, countless continuous integration servers that support it directly, and solid integration options for all major Java IDEs). Most of the proposed alternatives to Maven build on top of infrastructure intended for Maven. These are clear signs it is not going “away” any time soon.

But on the other hand, development on Maven itself has been frustratingly slow (said as both a developer and a user). Between attention to other tools and the sufficient stability and wide adoption of the 2.0.x series, new releases have been a long time coming. This is, however, a good time to ask the question of where Maven is going, because there are signs that things are turning around.

I recently gave a talk about open source communities and highlighted the importance of both activity and diversity in making progress. Over the last 6 months we’ve seen bursts by individuals (including myself) that have either not landed in the mainstream development, or have but have not been pushing towards a release. But in the last few weeks, as some focus has been given to isolating a milestone release to potential regressions from 2.0.x and that integration tests are running under various set ups, there are positive signs that the elusive first release is coming. If a group of people can continue working together, momentum will build and it will be out in short order.

In my opinion, a first milestone release will be the trigger for momentum towards a high quality, and much-improved, release of Maven that starts to address some of the long known practical issues that people commonly bump up against. It will certainly lay a platform for more important changes. But even without many flashy new features, Maven 2.1 will be a worthwhile upgrade. We’ve already seen efforts in error reporting, build determinism, plugin classloading, memory handling and embedding – and I hope this trend continues as we attempt to make Maven easier to use in more places and easier to fix when things go wrong.

Tangential to the core itself, we’ve seen a lot of work by a group of developers in pushing the site generation tools into new releases and the steady elimination of issues. In the transport layer – particularly around deployment, work was done to eliminate most known bugs.

I hope this is good news for the blog author, who is a self-professed fan of Maven. In the end, the basis for his post was a simple thing, that it lacks flexibility. This is one of the older arguments surrounding Maven, and again here it was seen his problem could be addressed by a simple and widely available plugin. This is often the case.

However there is also something to the point that he raised about new languages on the JVM, and the incoming stream of new build tools that utilise a lot of Maven concepts and infrastructure while remaining based in scripting languages that merits a closer look. I will save this second point for a follow up post.

I know a few people will be disappointed to hear me say it, but it seems Maven isn’t going away just yet.

Update: while I had this draft open, I see Brian has responded as well. It seems the author knows how to push the buttons of the Maven developers 😉

Leave a comment