Nelz's Blog

Mah blogginess

Ack! Maven Loses Out AGAIN!

One More Time Now…

I really really really want to believe in Maven, but once more, the stuff I want (need) to do just doesn’t work within the confines of Maven.

Now normally, I am a command-line build lover. Sure, I’ll code in the IDE, and if some other functionality (or ‘cool stuff’) is given to me and it easily fits in with my process, I’ll use it. However, if all the bells and whistles are out-of-my-process, I don’t want to deal with them.

But, the architecture/process consultant we have in the house keeps pushing to capitalize on functionality within Eclipse. He wants quick iterative cycles for web apps. I said that this is easy with Maven and the Jetty plugin. (And, I actually had this working pretty well…) He said he wants to do the same with Tomcat (which we are using in Production), and with IDE debugging enabled. Those are the two straws that broke the camel’s back.

I have found no easy way to do this via Maven. The WTP tries to give you the Tomcat + debugging (but isn’t yet ready for prime-time according to our consultant), and MyEclipse (supposedly) does it well. All my attempts to do this with Maven-specific stuff failed. (See this CodeHaus article for instructions, and notice some of the comments bring you to this JDK(?) bug .)

I am also still a bit upset at the problems with the concept of "integration testing" in Maven… I’ve been trying to contribute to scratch my own itches, but it’s still very obfuscated and non-trivial.

As my supervisor said to me today "Your build system should help you develop, you shouldn’t need to develop for your build system."

At JavaOne, I asked Jason Van Zyl about the difficulties in adopting Maven, and he fully admitted that it is very easy to get frustrated if converting a build process to Maven… But, what I am doing is pretty much green-field work, and using Maven is still miserable!

The only plus out of this: like at my last company, I am going to be able to ‘steal’ some of the core concepts from Maven and incorporate them into my Ant scripts. I do believe we will even be able to use the Antlib for Maven for depedency management.