ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Craig R. McClanahan" <>
Subject Re: New build process???
Date Mon, 22 Jan 2001 17:21:21 GMT
Nico Seessle wrote:

> ----- Original Message -----
> From: "Peter Donald" <>
> To: <>
> Sent: Sunday, January 21, 2001 3:12 AM
> Subject: New build process???
> > What I propose is that two sub-directories be created during the build
> > process namely build/ and dist/. It would look something like
> >
> > build/classes    Contains compiled .class files
> > build/lib        Contains generated jar files
> > build/bin        Contains batch files that have been "modified" by build
> >                  process (ie change line-feeds etc)
> > build/manifest   Contains any generated manifests if/when we use such
> things
> > build/conf       Contains any generated config/taskdef files if/when we
> >                  use such things
> >
> > dist/bin        Contains ant scripts required to run ant
> > dist/lib        Contains basic ant libs ant.jar/optional.jar (and possibly
> >                 other jars like jaxp.jar/junit.jar depending on CLI switch
> >                 when built)
> >
> > We would also have a separate task that copies "dist" directory to the
> > install directory (ie /usr/local/java/ant or whatever). This install
> > directory is controlled by a particular property value.
> >
> +0.9 - the current dist-directory includes more than these two directories
> (namely docs and src). I don't know why, but maybe because the workspace
> could have been changed meanwhile when you do an install? If we don't need
> them and use ${ant.home}/docs and ${ant.home}/src add 0.1 :-)

I'm not an Ant committer, so I don't have a useful vote here, but Tomcat (and
several other Jakarta subprojects) are facting the same basic issues, and it
would be nice to see some commonality in how the subprojects organize their
build processes.

My personal preference is that the "dist" subdirectory would contain an exact
image of the files you would package into a "binary distribution" -- such as for
a nightly build, or for a release.  This way, if I wanted to use a production
release of Ant, I could set my "ant.home" property to point at the release
directory where I unpacked it, but if I wanted "hot off the presses" code from
CVS, I could point "ant.home" at the "dist" directory within my Ant source
directory, and everything else would still work correctly.

For Tomcat, I would want to do the same thing -- the "dist" directory would
mirror what is contained in a release, so that dependent packages could use a
real release, or the "dist" directory, as appropriate.

Other common conventions/guidelines could be added to this, if considered
desireable -- for example, if your subproject creates executable shell scripts,
then go in "dist/bin", library JAR files produced by the subproject (as opposed
to used in creating it) go into "dist/lib", and so on.  Such conventions would
make cross project dependencies much easier to deal with.

I don't see any reason to impose any Jakarta-wide restrictions on the internal
contents of the "build" subdirectory, other than a convention that if your
subproject utilizes such a thing, it should reside in a subdirectory called

What do you think?

> Nico

Craig McClanahan

View raw message