Hi Stefan,

We've implemented a common build template which other groups at the firm build 
upon. One issue we have had is providing a simple way for our users to plug in 
custom logic without having to copy Target definitions. We went about this by 
providing macro hooks which people could override. For example if someone 
needed to do some custom code generation they could override the pre-compile 
macro hook.

Would I be correct in thinking that target groups would be more suitable 
instead of the custom macro hooks we have?

If so are there any examples of Target groups I could look at? I am 
particularly interested in how I control whether or not my contributed Target 
is put at the beginning or end of a Target group.

In terms of support for if/unless, this could be useful for common build 
templates such as ours. For example we may have some logic to build a web 
component that should not be invoked if the project is not a web project.

Will it be possible to contribute to target groups programmatically too? 

How do Target groups and their targets contribute to the -p option?

Jeff

----- Reply message -----
From: "Stefan Bodewig" <bode...@apache.org>
Date: Thu, Dec 10, 2009 05:11
Subject: target-group in trunk
To: <dev@ant.apache.org>

Hi,

this is just a description of what target-group in trunk currently is
and what it is not.  I'll describe the implementation rather than the
initial phase concept as it is implemented in EasyAnt which uses a
custom ProjectHelper to implement its slightly different concept.

This mail serves as background in addition to the thread Nicolas has
started.

A target-group is basically a target with two differences:

* must be empty

* its depends list can be added to during parse time.  Other targets and
  target-groups can declare themselves as part of the group and get
  added to the group's depends list.

That's all.  Order of execution is still only determined by the depends
attributes of all targets.

For anybody running a build target-groups are just like targets.  They
are listed together with targets in -projecthelp and create BuildEvents
and log output of targets.

A target-group is not a container of targets.  It doesn't provide a
grouping in a sense that a target would be executed as part of a group -
the depends lists of all targets and target-groups still determine the
order.

Since a target-group is always empty, the if and unless attributes don't
have any effect at all.

Of course we could change the implementation to get to a more
composite-like implementation - making if and unless useful and maybe
introduce new build events - it is just not clear (to me) whether the
additional effort would provide anything more useful.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org



Reply via email to