Ant depends vs. antcall?

The main difference between both approaches is that targets in depends are always executed, while targets in antcall are executed only if the containing target is.

The main difference between both approaches is that targets in depends are always executed, while targets in antcall are executed only if the containing target is. A clarifying example: Here, be will always be executed, while a will be executed only if some. Flag is defined.

Here, be will only be executed if a is, i.e. If some. Flag is defined.

The biggest difference is that Ant will ensure that dependencies declared via depends are called at most once. For example: If I call target d, be and c are called. However, a is only called once (even though both be and c depends on it).

Now suppose we decide to use antcall instead of depends for target d: Calling target d will now call targets be and c; however, target a will get called twice, once for be and then again for c. In other words, antcall sidesteps the normal dependency rules that are the cornerstone of Ant. I don't think antcall should be used as a substitute for normal Ant-like dependencies; that's what depends is for.So when would you use it?

The antcall task does allow you to control what properties and references are defined (which is why a new Ant environment is created--and why it's so slow) so it can be used to create variants of the same thing; e.g. , maybe two jars, one with and one without debug symbols. Overusing antcall, however, creates slow, brittle, and hard to maintain build scripts. Think of it as the goto of Ant--it's evil.

Most well-written build scripts simply don't need it except in unusual cases.

Good point on "once and only once"! Upvoted, of course. – road to yamburg May 10 at 4:15 Thank you, a highly relevant detail – kostja May 10 at 6:35.

Antcall is relatively rarely used, because: The called target(s) are run in a new project; be aware that this means properties, references, etc. Set by called targets will not persist back to the calling project. In other words, antcall is whole new isolated Ant process running.

– kostja May 9 at 12:46 No, antcall is synchronous, just like any other task. There is a task in Ant for concurrent execution. – road to yamburg May 9 at 15:08 Thank you – kostja May 9 at 15:11.

... This means beforeing executing any statement or any tag from target a, ANT makes it sure that target be is executed successfully And you can call any target using antcall after some statements or tags gets executed from calling target.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions