ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Wolfgang Häfelinger <whaefelin...@epo.org>
Subject Re: [DISCUSS] EasyAnt: Ant based pre packaged build system for java projects
Date Mon, 14 Jan 2008 17:02:16 GMT
Assume also:

   <target name="prepare" before="junit">
      <prepare />
   </target>

Do you want this before your "start-server" or after it or 
in parallel?

And you you need to extend Ant with "before" and "after" of
course.


Regards,

Wolfgang Häfelinger
Research & Architecture | Dir. 2.7.0.2
European Patent Office
Patentlaan 3-9 | 2288 EE Rijswijk | The Netherlands
Tel. +31 (0)70 340 4931
whaefelinger@epo.org
http://www.epo.org




"Peter Reilly" <peter.kitt.reilly@gmail.com> 
14-01-2008 17:52
Please respond to
"Ant Developers List" <dev@ant.apache.org>


To
"Ant Developers List" <dev@ant.apache.org>
cc

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






Why not have something simple like having a "before" and "after" 
attributes to
the <target> element.

<project  ...>
    ...
   <import file="${commons.dir}/ant-setup.xml"/>   <!-- defines common
build, junit, javadoc etc -->

   <target name="start-server" before="junit">
      <start-server/>
   </target>


  <target name="stop-server" after="junit">
     <stop-the-server/>
   </target>


</target>

Peter

On Jan 14, 2008 4:35 PM, Wolfgang Häfelinger <whaefelinger@epo.org> wrote:
> > So every concrete simple target like <target name="foo" depends="bar,
> > baz" /> became
> >
> > <target name="foo" depends="bar, baz, -pre-foo, -foo, -post-foo" />
> > <target name="-foo" > ... </target>
> > <target name="-pre-foo" />
> > <target name="-post-foo" />
>
> This looks pretty ugly this me!
>
> I believe that this whole discussion focusses too much on targets
> instead of macros. Macros are a very powerfull feature and they
> deserve much more attention!
>
> 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>
>
>
> Notice that I'm only using the name "foo" and not "-post-foo" and all
> your other names.
>
>
> Regards,
>
> Wolfgang Häfelinger
> Research & Architecture | Dir. 2.7.0.2
> European Patent Office
> Patentlaan 3-9 | 2288 EE Rijswijk | The Netherlands
> Tel. +31 (0)70 340 4931
> whaefelinger@epo.org
> http://www.epo.org
>
>
>
>
> "Dominique Devienne" <ddevienne@gmail.com>
> 14-01-2008 17:17
> Please respond to
> "Ant Developers List" <dev@ant.apache.org>
>
>
> To
> "Ant Developers List" <dev@ant.apache.org>
> cc
>
> Subject
> Re: [DISCUSS] EasyAnt: Ant based pre packaged build system for java
> projects
>
>
>
>
>
>
>
> On 1/14/08, Stefan Bodewig <bodewig@apache.org> wrote:
> > "Dominique Devienne" <ddevienne@gmail.com> writes:
> > Having something like before/after/around advices (where around is the
> > same as an override that doesn't change the dependencies list) may
> > suffice and leave overwriting the whole target definition to the worst
> > case.
>
> Thanks for reminding me of this issue Stefan. Indeed, something I
> really didn't like about overriding the whole target, is that you had
> to duplicate the dependency list as well...
>
> Which is why I now remember that I now remember I used 4, not 3
> targets, in the "abstract" build, the forth one being the target's own
> content, separate from its dependency list:
>
> So every concrete simple target like <target name="foo" depends="bar,
> baz" /> became
>
> <target name="foo" depends="bar, baz, -pre-foo, -foo, -post-foo" />
> <target name="-foo" > ... </target>
> <target name="-pre-foo" />
> <target name="-post-foo" />
>
> in the "abstract" build. Override -foo to replace just the target
> content, without it's dependency list. Or override foo to have
> complete control, but in my experience it's -foo that needed
> overriding, not foo.
>
> Note though that unlike before and after, around isn't as
> representative a name. When I thought about this issue a while back, I
> thought of using a magic name such as "super" in the depends attribute
> to refer to the overridden target's dependency list, similar to using
> <super/> in the target's body to refer to the overridden target's task
> list/content. --DD
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> For additional commands, e-mail: dev-help@ant.apache.org
>
>
>

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




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


Mime
View raw message