ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stephen McConnell" <>
Subject RE: Subdirectory problem/always recompiles
Date Mon, 21 Nov 2005 04:51:16 GMT

> -----Original Message-----
> From: Brown, Carlton [] 

> I expected that Matt's situation would have worked for me, 
> and I don't see why it didn't.  Either I did it wrong, or 
> somehow these techniques are different in some subtle way.  
> Right now I'm happy with my solution and later I'll come back 
> and investigate what went wrong with the other way.
> > Now if you're up to the challenge, you should try to work with the 
> > developer to untangle the dependency knot you've discovered. Having 
> > separate source dirs implies independent components, or at 
> > least clean dependencies (i.e. a <javac> per dir can compile 
> > the source with no additional source dirs).
> That's one of our goals.  In fact these subdirs were once all 
> lumped into the same directory, and this separation was the 
> first step toward refactoring.   When you're talking about some 
> 3000 classes written by 50 developers over a period of 6 years, 
> obviously it gets a bit tricky.  We do plan to get to get this  
> beast to an acyclic point in the next 18 months, though.

I've been though a similar exercise with 50 developer separated over 9
countries contributing code over a period of just under 4 years.  The final
result fell out into over 200 separate projects - each with specific build,
runtime and test dependencies.

Some of the lessons learn from the process:

  1. a strict file structure per project is invaluable
  2. centralize version and dependency information away from 
     the logic related to build mechanics
  3. try and centralize properties away from projects
  4. put in place a modularization strategy that groups projects
     together - that preferably captures property inheritance 
     and build strategy independently of the build mechanisms
  5. make extreme efforts to eliminate information in a build 
     file - preferable to the point where a build file is not 
     even required (i.e. the build.xml only contains information 
     that is 100% specific to the project)

Cheers, Steve.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message