Yegor Bondar
Ant is so old and can not manage dependencies well (Ivy as a solution)
Maven is good but not flexible.
Wanna flexibility?
Put ANT piece into you put.xml!
Get scripting abilities from Ant, take dependecy managment from Maven and use Groovy DSL.
A project is essentially a collection of Task objects.
Each task performs some basic piece of work.
A project generally has a number of dependencies.
Project generally produces a number of artifacts, which other projects can use.
Plugins can be used to modularise and reuse project configuration.
Any property or method which your script uses is delegated through to the associated Project object.