ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark McMillan <>
Subject Re: How to run a target without ANTCALL?
Date Mon, 17 Dec 2001 12:41:11 GMT
None of the offered solutions is really clean... a complex build file with 
many targets (some of which invoke each other via ANTCALL) always evaluate 
common dependencies more than once.  It takes a lot of tedious code to 
control it with "unless" clauses and setting properties to prevent multiple 

So I wrote a simple task of my own called "do" which will invoke the named 
target without losing the current dependencies.  So instead of writing:

   <antcall target="subtask">

I write:

   <do target="subtask">

This seems to work very well and results in significantly faster builds of 
our large project when running high level targets (e.g. targets that call 
lots of sub-targets).

Seems like this should be a built-in ANT function...?


At 01:01 PM 12/14/01, you wrote:
>--- Mark McMillan <> wrote:
> > At some point in a target I need to execute some other target in the
> > same project, but I don't want to use ANTCALL because it re-evaluates
> > all the dependant targets.  E.g. I have an "init" target that all
> > targets depend on.  If I use ANTCALL to invoke a target, "init" will be
> > executed more than once.  Is there some way to invoke a target without
> > using ANTCALL (or, some way to prevent re-evaluation of dependants in
> > the call)?
>You can execute a target from <script> without it re-running dependent
>targets. If using <script> doesn't float your boat, the only other thing
>that jumps to mind is to have your "init" target (if that's the only one
>you're concerned about) set an (eg.) init.done property, then include an
>unless="init.done" for the "init" target.
>Do You Yahoo!?
>Check out Yahoo! Shopping and Yahoo! Auctions for all of
>your unique holiday gifts! Buy at
>or bid at
>To unsubscribe, e-mail:   <>
>For additional commands, e-mail: <>

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

View raw message