login

This is the version of Home

Home

Gant

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
  • Ant
  • 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 looks at all the targets that are defined in the Gant file and creates a dependency tree that is then traversed according to the target you are trying to run.

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 ...?

Ant

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.

Maven

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.

Rake

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.