| better link: http://kent.spillner.org/blog/work/2009/11/14/java-build-too... After about a year of experience with Maven, I find that: * The "surefire" plugin is named ironically. The build often fails without a message about what unit test failed. * Maven is extremely slow. Eclipse builds the source in 30 seconds max; Maven takes 5 minutes. * Maven's output is extremely verbose, but if anything goes wrong, it "helpfully" tells you to rerun it with -X -e to get the actual error message and stack trace. You can run it with -X -e all the time if you want, but I think it generates so much output that it actually slows down the build. Yes, really. * There are a lot of things you just CANNOT DO in Maven.
One example is bundling a Maven plugin together with the rest of your Maven source and use that same plugin elsewhere in the project. It fails during the early phases of the default lifecycle because the plugin isn't installed yet. But only by getting to the later phases of the lifecycle can you install the plugin. But you can't do that because the early phases fail. An infinite cycle of despair is right. * Even the most trivial project takes a few screenfuls of
XML to set up in Maven. * Maven's dependency management is poor, too. If you have some library A that pulls in B, and another library C that pulls in a slightly different version of B, you can get misbuilds. It's your job to identify and fix these problems. They will show up at runtime. And let's not even talk about SNAPSHOT and how horribly that can go wrong. * Maven is also known for pulling in tons of unnecessary
dependencies. But hey, you don't mind 50 more megabytes of jars on your CLASSPATH, do you? I was honestly expecting the article to address some of these points, instead of vague philosophical ramblings. Seriously, Maven is horrible. This article gives you no inkling of just how bad it is. |