Monday, April 09, 2007
Why is Maven Still Such a Horrific Pile of Garbage?
The terrible, tragic thing about Maven is that there's a kernel of a really good idea behind it. Building stuff, handling dependencies, running tests, producing reports. Great! Fantastic! If only it weren't to software development what Mr Garrison's "It" was to transit.
First, those who get excited about XML configuration need to die in a fire. A sewage fire. You know what? XML blows. The XML fad is over. Stop using XML for all kinds of garbage that it was never intended for. What the hell is wrong with you? People do not like writing this crap, and they like reading it even less. I don't give a damn that it makes your crapware XML/Object mapping tool spit out nice little objects that are easy for YOU to deal with when handling configuration. It's not about YOU if you want people to use your diarrhea soup.
Next, why does everything in this obtuse XML configuration HELL have to be
Seriously, if I need to get a file included in my output, why does it have to be in a structure 4 levels deep? And why do some of the bottom-layer elements allow file globbing? Don't you realize that if you can handle file globbing, you could just one ONE DAMN TAG ONE LAYER DEEP and be done with it? Die!
Want to see the results of your unit tests? Go look in a bunch of individual files! Because the build can only scream FAILURE!!! at you (just like that) and doesn't bother to tell you which assertion failed at which line in which class and method.
What a horrible pile of dung. Maven has been around for well over 4 years and in that time the only thing that appears to have improved is its startup time.
I don't know why anyone puts up with this crap.
i've never really looked that deeply into it, my cursory examination a few months ago left the "not mature enough yet to try" taste in my mouth.
Seriously though, for all its quirks and annoyances, there's not a better alternative for doing what it does.
In the OpenSores world, it is often necessary for one's project to be shared with other people who may use different IDEs or no IDE for their development. So you can't really rely on your IDE's metadata files to provide sufficient information for someone else to build your project.
That's where Maven comes in, as a tool that lives outside the IDE (but can integrate with it), providing consistent project layout, dependency management, and compilation.
I can run my project in Eclipse, but export something that I know someone who uses IDEA can use simply by running the Maven "idea:idea" target... and there's no doubt that person can build my source. Maven will even take care of downloading all of the necessary dependencies from public repositories.
In short, Maven is giving me IDE independence and dependency management.
anyway in my wicket/spring/jpa application i use a build solution based on ant+ivy, it's really neat and simple.
ps. and yes, lotus notes sucks as well
Subscribe to Posts [Atom]