| If what you need to do can be done in Maven you don't need to do anything very difficult. Ant scales poorly; dependencies are a particular headache. Maven scales astoundingly poorly. Here's a very short list of things that are massively obnoxious to do with Maven, but are perfectly reasonable: - submitting code to a code review site like Gerrit. - generating code (for example, a parsed SNMP MIB that you want as a Java class so you can refer to it easily). - integration with a tool like Sonar (yes, there's a Maven plugin. You ever used it?). - code coverage analysis (yes, there's a Maven plugin. You ever used it?). - FindBugs style analysis (yes, there's a Maven plugin. You ever used it?). - interesting dependencies on external libraries (to pick an example from Ruby, the json gem was horribly broken at 1.4.2 and generations of projects have varying requirements for json < 1.4.2, json > 1.4.2, and many other worse things. - C code (through JNI or anything else, a perfectly reasonable thing to want to do). - deployment. From bitter personal experience it is possible to get so wrapped up in this that you think you have achieved something amazing when you finally finish, when it could have been done in a few hours in make or rake. "Oh, but you can integrate it with your IDE!" The only thing your IDE actually needs to get from the Maven POM is to understand where your source code is, what you depend on and where it is, and how to run your tests. Everything else they do with command line calls, just like it was Ant. |
Have you looked at http://maven.apache.org/guides/introduction/introduction-to-...?
Maven is particularly good at generating code for later compilation and processing. Your custom code generator just needs to put code into src/generated and it will be picked up.
Given that Maven is used to organize and build some pretty large projects out there in the real world, you might want to amend your statement from "Maven scales astoundingly poorly" to "I am astoundingly poor at scaling Maven".
It's not all wine and roses in the land of Maven, but it gets a whole lot of the job done, and done well.