ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Reilly" <peter.kitt.rei...@gmail.com>
Subject Re: [DISCUSS] EasyAnt: Ant based pre packaged build system for java projects
Date Mon, 14 Jan 2008 17:26:54 GMT
On Jan 14, 2008 5:24 PM, Peter Reilly <peter.kitt.reilly@gmail.com> wrote:
> On Jan 14, 2008 5:02 PM, Wolfgang Häfelinger <whaefelinger@epo.org> wrote:
> > Assume also:
> >
> >    <target name="prepare" before="junit">
> >       <prepare />
> >    </target>
> >
> > Do you want this before your "start-server" or after it or
> > in parallel?
> >
>
> I would say that if the build file does not specify the order, then the order
> is undefined.
>

This would be similar to the @Before and @After annotations in junit.
Peter

> If the order is important, then the build file can enforce an order by
> using "depends".
>
>     <target name="prepare" before="junit" depends="start-server">
>        <prepare />
>     </target>
>
> Peter
>
> > 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
> >
> >
>

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


Mime
View raw message