What about this: I also like the idea of pre/post targets for targets and tasks, behaves like extensions points (aspectj style) rather than overriding this way: it tooks x seconds to run web-war Let us import other build files, point to and depend to targets defined there, override targets and pre/post targets/tasks and you really can write reusable reusable build file pieces. Ara. > -----Original Message----- > From: Nicola Ken Barozzi [mailto:nicolaken@apache.org] > Sent: Tuesday, July 09, 2002 10:00 PM > To: Ant Developers List > Subject: Re: Ant 2 et al. > > > Erik Hatcher wrote: > > ----- Original Message ----- > > From: "Nicola Ken Barozzi" > > > >>IMHO it's better to use composition rather than inheritance, ie compose > >>common build parts in your builds, like Java use Java packages. > > > > > > I'm not entirely convinced of this yet, but I still need to ponder this > > some. > > > > Example: > > I want to "inherit" a common web app project and add, say, XDoclet > > generation of web.xml. > > import file="commonwebappproject.xml" > import file="xdocletgeneration.xml" > > >>It's more a uses-a relationship rather than a is-a one. > >> > >>With imports you can modularize your builds. > > > > > > But I don't want to import all the pieces for every build. I want to > inject > > something into the dependency graph of an already pre-defined build. > How > > would that play out with imports? > > Ah, "inject in the dependency graph" is a delicate point ;-) > > If you want to not import everything, make an intermediate > buildfile that imports the single parts and have each of > your projects import that. > > This means that each of your projects have access to the common build > targets with a single import, and can create others via composition, ie > by creating new targets and calling the original ones via antcall or > depends. > > You are not able to inject though a target in a defined place in the > imported tree though. > It's specialization, what Maven does by giving hooks as pre and post > targets to existing ones. > > But this hides the dependency tree that is modifies. > If it's pre-made but hidden it's ok, but if it's modified *and* hidden, > it hides what is happening and can bring to subtle errors. > > -- > Nicola Ken Barozzi nicolaken@apache.org > - verba volant, scripta manent - > (discussions get forgotten, just code remains) > --------------------------------------------------------------------- > > > -- > To unsubscribe, e-mail: > For additional commands, e-mail: -- To unsubscribe, e-mail: For additional commands, e-mail: