ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Donald Strong" <>
Subject RE: just not getting it
Date Mon, 11 Aug 2003 02:46:27 GMT
Brilliant synopsis Laird,

Having written build systems in both Make and Ant I throughly agree with you.

Two things I would add, for Gregory's benefit.

The first is one reason that Make just doesn't work as well with java
as it does with other languages is that the dependencies in java are not
obvious or readily available. Trying to get dependency checking for java
working in a Make build system is difficult, if not impossible. I think that 
is a major reason for the popularity of Ant.

Secondly, many of the Ant tasks have dependency checking built in. The
copy task is one example; as, by default, copies are only done when required.

The last comment I would make to Gregory is that Ant is worth persisting with.


> Without meaning the slightest bit of disrespect to any of the folks who
> have taken the time to answer your post, I don't think they addressed
> your core concern.
> Briefly: an Ant target is like a make "phony" target that can only have
> other "phony" targets as prerequisites.  Ant, while it does have
> *features* that *can* enable dependency checking, etc. does not
> *inherently* rely on file-based dependency checking like make does.  So
> it is wrong to simply say that an Ant target is like any make target.
> An ant task is equivalent to a make command (the part after a tab).
> Instead of writing shell scripts to do things when targets are invoked,
> you write Java classes and front them with
> (fairly-ugly-but-it-gets-the-job-done) XML syntax.  One Ant task, to
> take an example, copies files from one location to another, a job you
> might perform in make by typing "cp $FILES $DESTINATION".
> > Would someone please explain how to handle the simple example of a
> > directory/package tree full of .java source files to be built
> > into a JAR?
> Others have gone over this, but again, the core difference between make
> and Ant is that in make file dependencies are at its very core.  Not so
> with Ant.  There are good things about this and bad things about it.
> Finally, from a historical perspective--and again, I mean no disrespect
> here--Ant began from frustration, as do most open source projects.
> Someone got hacked off at make, said, "Why does this have to be so
> COMPLICATED?", decided to strip out all the unnecessary stuff, and came
> up with a task invocation framework (basically).  As Ant has progressed,
> the developers are beginning to realize just WHY make is so complicated
> (should properties be interpolated once?  Many times?)  :-)  However,
> there is a different flavor to both tools, and you should obviously use
> whichever is easier to work with.  Personally, I like Ant better,
> because although it's less solid and hasn't been around for as long as
> make, it's an ugly little tool that knows it's ugly and gives you enough
> warts and handles to be able to wrestle a project to the ground with it.
> Or, to put it another way, with Ant you fight the tool for about half an
> hour to get what you want, whereas you can spend WEEKS fighting make to
> get it to do something that isn't quite what you want.  :-)
> Cheers,
> Laird
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message