OK, I don't want to start a war here, but I think that have mis-information on
ant-user makes ant look bad.
> The reason I love Ant is:
> 1. very easy to write and understand the build.xml file,
> unlike the Makefiles.
That is entirely subjective.
Simple makefiles are easy to understand.
Complex makefiles are necessarily complex, as are complex build.xml files.
I use both, and I don't see the win here for ant.
I would say that most java developers can pick up a build.xml file and "get it",
while they would have difficulty (at first) understanding the equivalent makefile,
but I also see a place for build engineers, so I don't see that aiming your build
process to meet the needs of your least experienced developers is a good thing.
> 2. Ant is super fast. On an average, it is atleast 10 times
> faster than make
> files. See this article for why it is sooo fast:
> http://www.lutris.com/journal/January2001/articles/antEnhydra.html
> (You need to register with the Lutris Enhydra journal at
> http://www.lutris.com/products/journal_registration.html)
I'm still waiting for Lutris to mail me my username/password, so I can't
judge this article, but the conclusion doesn't meet with my experience.
GNUmake is faster on my celeron than ant is on my PIII.
> 3. It is platform-independent.
Which is not always a win.
It's probably good for java development, but in all things, being platform independant
means you lose the power of your platform.
If we're always going to do our builds on unix, then have a build tool that leverages
the power of unix may be a good thing.
cf All the people wanting to include environment variables in build files.
Sometimes platform-independance is a cost as well as a benefit
> 4. There is only one build file for the whole project and no
> need for a
> makefile in each directory and a lot of other make related
> files such as
> config.mk, top.Makefile, etc, and etc....
There is no need for that in make either.
They are either the product of bad build systems, or a calculated decision.
Organising a large project with multiple sub-projects is hard with any tool.
Sometimes splitting it into multiple sub builds is a reasonable thing.
Ant and make do it differently, and there are advantages to each.
I think Ant is better at it, but it's not as clear cut as you make out.
> 5. Lot of custom tasks for Java related tasks such as jar,
> war, ear, javadoc,
> and a lot more. See
> http://jakarta.apache.org/ant/jakarta-ant/docs/
> for a list of all the Ant tasks.
Which is just as easy in make.
Disclaimer: One of my hats is build engineer, and another is unix dude.
Make is horrible and ugly, but it works, and is often mis-understood
by people who have had bad experiences with it.
Writing makefiles that work is a complicated process, but I don't find
that writing ant files is much easier.