Java Mailing List Archive

http://www.ant-tasks.com/

Home » Ant Developers List »

Re: [DISCUSS] EasyAnt: Ant based pre packaged build system for java projects

Stefan Bodewig

2008-01-15

Replies:

Author LoginPost Reply
Wolfgang Häfelinger <whaefelinger@(protected):

> Why not simply:
>
> <!-- === framework === -->
> <target name="foo" depends="bar,baz" description="public foo target">
>  <foo />
> </target>
>
> <macrodef name="foo" >
>  <sequential>
>   <!-- to the foo thing -->
>  </sequential>
> </macrodef>
>
>
> If a user then really need to override "foo", he or she would simply
> write in build.xml something like
>
>
> <macrodef name="foo">
>  <sequential>
>   <echo> before original foo ..</echo>
>
>   <c:foo />     <!-- assume framework in NS "c" />
>
>   <echo> after original foo .. </echo>
>  </sequential>
> </macrodef>

Can you do <c:foo/> without changes to Ant?

The problems I see with this:

* not idiomatic (no real problem, though)

* requires all targets to consist of a single macro definition

* becomes repetetive with little chance for reuse

Say I'd like to perform the same action before more than one target

<target name="my-before" before="foo,bar,baz">
  <do-something/>
</target>

instead of

<macrodef name="foo">
  <sequential>
   <do-something/>
   <c:foo/>
  </sequential>
</macrodef>
<macrodef name="bar">
  <sequential>
   <do-something/>
   <c:bar/>
  </sequential>
</macrodef>
<macrodef name="baz">
  <sequential>
   <do-something/>
   <c:baz/>
  </sequential>
</macrodef>

* doesn't factor into the dependency calculation

taking the example from above, if all three targets foo, bar and baz
were executed in the same build, the dependencies of my-before would
only be executed once.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@(protected)
For additional commands, e-mail: dev-help@(protected)

©2008 ant-tasks.com - Jax Systems, LLC, U.S.A.