Gant, the Lightweight and Groovy Targeted Scripting Framework
Gant started out as a thin layer over Groovy’s AntBuilder, to provide a way of replacing XML as the way of controlling Ant tasks in executing specific targets. This more or less remains what Gant is really about: Gant doesn’t simply replace the XML front end to Ant, it provides target specification and dependency for Groovy scripts that use an AntBuilder. There was some flirtation with Gant becoming a fully-fledged build framework, but Gradle evolved out of Gant to take up that torch. Gant’s role then is to be very lightweight and yet provide useful functionality in terms of command line and direct API support for specifying targets to execute and scripting execution of Ant tasks. In this talk we will look at the Groovy techniques used in Gant to provide the functionality it does. Particular emphasis will be placed on using (or not) the metaclass system, and how to design (or more likely evolve) a domain specific language (DSL) to be well supported by the Groovy language.