I've experienced the same problem as Mark. Instead of a new task, perhaps an attribute on the existing 'antcall' task specifying not to reevaluate the dependencies is the way to go. Is there some reason this wasn't done, or is a matter of a feature that hasn't been widely requested yet?
Ron -----Original Message----- From: Mark McMillan [mailto:[EMAIL PROTECTED]] Sent: Monday, December 17, 2001 5:41 AM To: Ant Users List Subject: Re: How to run a target without ANTCALL? 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 executions. 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...? -Mark At 01:01 PM 12/14/01, you wrote: >--- Mark McMillan <[EMAIL PROTECTED]> 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. > >Diane > >===== >([EMAIL PROTECTED]) > > > >__________________________________________________ >Do You Yahoo!? >Check out Yahoo! Shopping and Yahoo! Auctions for all of >your unique holiday gifts! Buy at http://shopping.yahoo.com >or bid at http://auctions.yahoo.com > >-- >To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> >For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
