ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steve Loughran" <stev...@iseran.com>
Subject Re: Scaling to large projects
Date Mon, 03 Feb 2003 21:28:07 GMT

----- Original Message -----
From: "David McTavish" <dmctavish@SANDVINE.com>
To: "'Ant Users List'" <ant-user@jakarta.apache.org>
Sent: Monday, February 03, 2003 11:03
Subject: RE: Scaling to large projects


>
> The only tricky part was when projects depended on other projects. I've
> refactored this to basically two lines per dependency in each build
script.
> One to add the library to the compile classpath, and another inside the
> dependency of the compile target which imports the libraries to the local
> lib folder. I've refactored this such that it only requires two variables,
> the path to the dependent project, and the name of the archive to copy to
> the local lib folder. This means that you have to manually manage the
> dependencies between projects, which is more of a philosophical difference


the way I work is

-a central repository of libraries for every app. this makes it easier to
roll out updates across all apps


lib/log4j-1.2.7/dist/log4.jar
lib/castor0.9.3.9/lib/castor.jar
...

-a central properties.xml file to declare log4j.home, log4j.jar properties
set to the various locatons
-the file also to declare the dirs that various projects stick their output
jars
-this file is included as an XML entity (see ant in anger for details)

So an app sets up a classpath of ${log4.jar},${axis.jar},${castor.jar},
${myapp.jar}, pulling them in from wherever they are defined; if one machine
wants to bind axis.jar to daily builds, that can be one in a properties file
loaded in properties.xml; the apps own build files are untouched.

Does this work? Yes, especially the bigger and more complex the project.
Having all the libs in one place makes maintenance easier.




Mime
View raw message