This is a site to try and introduce you to the benefits of Gant and also to try to create a tutorial to help you learn Gant.
What is Gant?
Gant is like a cross between very flexible build systems like Make that essentially execute shell commands in a certain order with the declarative build systems like Ant.
Gant should be thought of as a standalone build tool that is made up of the following things:
- The Groovy language
- The Gant script runner
The important things to note is that Gant is build on top of Ant and Groovy and gives you full access to both. If you know Ant then you know Gant and the only new thing to learn is how you script Ant tasks via Groovy.
The Gant runner evaluates the entire Gant script and then calls methods on the resulting script that in turn delegates the dependency resolution to Ant.
Really that's all there is to Gant, it's meant to be an easier way of dealing with your Ant that also gives you access to a full blown scripting language.
How does Gant compare to ...?
Gant uses Groovy to define its build files not XML. However it stills uses Ant tasks like Jar and Javac and it accesses them from the Ant jar files.
Because Gant is written in Groovy it is very easy to interact with the executing environment and also to use things like conventional program flow within your tasks.
It's quite different, Gant doesn't have any defined structure to projects or any dependency management. Gant is probably more of a low-level tool than Maven. There is a Groovy based product called Gradle that is probably closer in functionality set.
It is very similar to Rake but there are more built-in tasks because it is leveraging Ant. Also some of the Rake built-in tasks are more elegant than those in Ant because there is a lot more convention over configuration in the Ruby world compared to Java.