ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Loughran <>
Subject Re: failonerror; general solution
Date Thu, 09 Oct 2003 20:27:22 GMT
Jack Woehr wrote:
> Gus Heck wrote:
>>Im wondering if part of what is happening is a migration of what people
>>need from a build tool...
> Hi Gus ...
> I think what's happening is that people are building larger projects than
> most people who develop for Apache Ant had dealt with early in Ant history.
> I'm working on the build for a large Java project, 3939 lines of Ant XML.
> We have all sorts of configurations for the built product.
> Sitting there and writing two targets, one if="blah, one unless="blah",
> and putting both in the dependencies for the init target ... that can get old after only
> a few config variables!

For big projects, ant-contrib makes sense. I personally use try/catch in 
places to deal with installation grief only, the rest is declarative. 
And we do scary things here, things called C++, CppUnit and .NET :(

The trouble with putting it in from the beginning is that it encourages 
bad ways.

And look what we have instead; some tasks have failoneeror, some dont; 
those that do sometimes have different defaults from others (exec and 
java default to false).

An alternate future option is to use aspects on the tasks, so that
<taskFoo ant:failonerror="true"> hands failure handling off to Ant, not 
the task. This has been discussed before, usually in the context of Ant2.0

>>If so, should ant change?
> Yes. As I said two years ago on this list, Ant (like m4, like make) is sort of a mini-Prolog,
> and Prolog *changed*. Like Edmund Burke's famous advice to King George III on the Stamp

which was?

> Act, the Prologians recognized that while everything *could* be solved purely by logic
it was not
> always *convenient* to solve everything purely by logic. So Prolog added some control
flow and
> iteration.

Did it? Why, that is a crime against tail recursion!

Actually one of the nice things of prolog is that its list structure was 
clean and elegant and easily used.

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

View raw message