Gant is a Groovy wrapper around Ant that can be used for managing your builds. I have not used it (disclaimer), but it looks pretty promising.
Why would you want to do that, whats up with another build approach? Well let's face it, Maven is far from perfect, and Ant alone though very capable, can get cumbersome on larger projects. And there are a few other alternatives, but nothing with quite the following and support of Ant.
Gant seems like a reasonable approach to reigning in Ant a little bit, and still leaving you with all the flexibility and power that Maven sometimes likes to hide.
Comments
Yes this is what we need
I've been thinking about how frustrated I have been with maven lately, and using groovy or another scripting language to script in place of XML is something that have crossed my mind. Jelly is just too cumbersome for me, not to mention all the other XML files you have to create just to create a plugin, or set up a project. Another problem with maven is that error messages are just not very good, nor is the documentation. So when something doesn't work, you often have to spend a lot of time googling or asking experts to figure out the fix. I suspect this is because of the unusability of jelly. And then there's the confusion between maven 1 and maven 2.
I hadn't known about Gant. It's not exactly a substitute for maven, rather that of ant. But I glad that more people in the Java world are making conscious efforts to get away from XML. Now we need to start writing pom files in groovy too.
Concur
I agree there is room for more effort in this area.
Personally I like Ant, but I also like the dependency management of Maven. Maven 1 works well in my experience (it bridges that)., but it's certainly not perfect, and the things you pointed out are right on. It works for me because I guess I have learned a bit about it the hard way over time. Maven 2 on the other hand, drives me nuts.
Gant looks promising, what would be nice (insert "go do it yourself" speech for me here) is a better way than the Ant XML to have all the power of Ant (Gant) and a dependency management mechanism built into Java. A "kernel" based JVM and also kernel/module based project setup that works very simply. (Not OSGI or JSR 277, not that fancy, rather more like Maven repos and a descriptor/grabber process built into Java.)