ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Weintraub <>
Subject Re: ANT enhancements
Date Mon, 15 Jun 2009 18:20:01 GMT
On Mon, Jun 15, 2009 at 1:44 PM, Shawn Castrianni <> wrote:

> Yes, I use antcontrib extensively.  All of this should be added to ANT
> proper.
> However, this doesn't help with my item #2 since the only way to stop any
> dependent targets it to put an if/else throughout all dependent targets.  It
> would be much more efficient to do something like my #2 request.

I'm a little confused by this. Let's say that B is dependent upon A. If "A"
fails, then "B" simply doesn't execute.  There's no need to do a test in "B"
if "A" fails.

Can you give me an example of the issue you're having?

Right now, it sounds like you're saying if you say to do task "B" and "B"
depends upon "A", you have to run tje same test on both "A" and "B". Why not
simply test in "A". If the test fails in "A", "B" won't run. If you are
saying that "B" and "A" aren't dependent upon each other, but both depend
upon another requirement, then make that requirement a separate target, and
have both "A" and "B" dependent upon that.

Remember that Ant is a dependency matrix and not a scripting language. If
you have dependencies, you set them out in Ant, and let Ant figure out the
build order.

Ant isn't as flexible as a scripting language, but its true power is letting
Ant itslef figure out what needs to build and when.

I use to be a heavy user of the AntContrib package, but then I started
feeling that it seems to be more of a pain than it is worth. I've
restructured our build system (much like Maven does). This has greatly
simplified our builds and eliminated much of the need for AntContrib.

The developers were first complaining that they've lost the "flexibility"
they wanted, but now realize that development is much simpler because we no
longer have to worry about whether we're building things correctly or not.

David Weintraub

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message