Workspaces cannot be articulated cleanly as a parent/child project tree, IMO. Projects form DAG's, not trees, the same way targets do. For example, a (very) quick glance at the build.xml file for tomcat reveals that it depends on the catalina, jasper, and webapps subprojects. Catalina and jasper both depend on jaxp. Catalina and webapps both depend on servletapi. A theoretical project that depended on tomcat might also depend on regexp, which is used by catalina. And so on.
We currently get around this by building the binaries for things like jaxp and regexp as a completely different step, then importing them into the other projects. That makes a fair amount of sense in these cases, since they are actually standalone projects in their own right. But on any large application with many subprojects, there are going to be a number of "framework" or "utility" projects that have more than one parent that depends on them. And I don't want to build those separately. In fact, I would prefer it if I didn't even have to build the jaxp or regexp (or whatever) stuff separately... The parent/child architecture forces us to use "recursive ant" which doesn't really model dependencies accurately (see http://www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html). The antfarm proposal addresses this by adding a "Workspace" class which manages multiple projects. Projects can reference stuff in other projects by using an "import" statement, and ant will build up the entire graph of dependencies before starting the build. So no target will be built more than once... Matt Foemmel ThoughtWorks, Inc. James Duncan Davidson To: <[EMAIL PROTECTED]> <[EMAIL PROTECTED] cc: net> Subject: Re: Anteater... I'm Baaaack... 12/17/2000 11:26 PM Please respond to ant-dev On 12/14/00 5:22 PM, "Peter Donald" <[EMAIL PROTECTED]> wrote: > However there are things that would be nice features - JPan discussed a > while back is one of them as is the idea of "Workspaces" that contain many > ant-projects. Workspaces are a valuable concept. My take is that they can be clearly articulated as a parent/child Project tree. However, as soon as AntEater dogfoods, I'll set up some experiments to take a really close look.
