Hello Jacob,
why don't you just import a common build file and define the common target there. Only when
the target is not defined in the build file, the common target gets executed.
R,
Markus M. May
-------- Original-Nachricht --------
Datum: Mon, 23 Oct 2006 22:28:35 -0500
Von: Jacob Kjome <hoju@visi.com>
An: user@ant.apache.org
Betreff: dynamic targets
>
> Along the lines of....
> http://marc.theaimsgroup.com/?l=ant-user&m=107429941032345&w=2
>
> Is it possible to create targets dynamically, deferring creation
> until such time as it is found that the project doesn't have the
> target already defined? My use-case is using <subant> to iterate
> over sub-builds calling a target on each one. My current strategy is
> to define <patternset>s for each type of project. For instance, I
> add all web projects to a particular patternset and then reference
> that patternset when calling <subant>....
>
> <subant target="war" inheritAll="false">
> <fileset dir=".">
> <patternset refid="war.patternset"/>
> </fileset>
> </subant>
>
>
> As further fallback, individual builds may implement empty targets
> just so that they don't fail, just in case...
>
> <target name="war">
> <echo message="Unimplemented target"/>
> </target>
>
>
> However, ideally, I'd like to be able to create the above target
> dynamically in the case that it isn't implemented already by the
> build. This would have 2 benefits:
>
> 1. I wouldn't have to bother creating the patternsets. I'd just
> call all the build files and let them either build the war file or
> echo the "Unimplemented target" message.
>
> 2. Individual builds that aren't web projects wouldn't have to have
> to know what a web project is. If the only artifact generated is a
> simple jar library, it seems odd to have to implement a dummy "war"
> target simply because some external master build file might call "war" on
> it.
>
>
> Instead of Ant failing with the following message...
>
> BUILD FAILED
> Target `war' does not exist in this project.
>
>
> ...I'd like Ant to just run the above dynamically created target (not
> just the "war" target, but any target that might not exist), report
> the "Unimplemented target" message, and continue on.
>
> So, is this possible? Where/how do I hook into Ant to know the
> target isn't implemented and create it myself via a scriptdef before
> Ant gives me the build failure?
>
>
> Jake
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org
|