Hi Ant developers,
I am making use of target overriding in combination with extension-points.
I have the same problem as that discussed here, which will hit me when I
upgrade to ant 1.9:
https://issues.apache.org/bugzilla/show_bug.cgi?id=56337
My use-case is identical to the one in Comment #3 of the above-mentioned issue:
- a common script with extension-points and default targets defined;
- a handful of project-specific build files which import these and override
just a few targets.
The philosophy I am trying to follow here is where the common script defines
the order of
execution of all build steps for all projects, thus achieving a certain degree
of uniformity
across our build processes. I have taken an extreme approach
where any targets defined in the project-specific build files are only allowed
to specify the "extension-of" attribute, and not the "depends" attribute, thus
forcing all
flow control logic to reside in the common script.
The workaround given in Comment #4 seems too messy/warty to me
... a lot of redundant targets have to be created:
"greeting"
"hi",
"hi-impl"
...and the output is not very intuitive, as it suggests to the casual reader
that
both "hi" and "hi-impl" were executed, which is not the case:
hi-impl:
[echo] Hello
hi:
greeting:
So, if we leave this workaround to the side for the moment, my question is:
If a target from an common build file can be overridden by declaring a target of
the same name, why is this not also true for targets in the common build file
that specify
an "extension-of" attribute?
In Comment #2 it was mentioned that the latter case is considered "dangerous",
but isn't overriding *any* target dangerous in that sense? As a script
developer I would first
go and see what I am overriding, see what it depends on, see what it extends,
etc.
Is it that the philosophy of removing flow control logic out of
project-specific scripts
is not the Ant Way?
Many thanks for your consideration.
Daniel
________________________________
All emails in this message string and any attachments are the confidential
information of CSG Systems International, Inc. (CSG), or its affiliates and
subsidiaries, and may contain privileged and/or confidential material. If you
are not an intended recipient, please delete it immediately and notify the
sender; unintended recipients are not authorized to read or otherwise use the
information contained herein.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]