I am about to check in a patch which has been evolving on DERBY-3986.
Please see that issue for a detailed discussion of this work. This patch
makes the following high level changes:
1) Introduces a new artifact directory called "generated", which lives
parallel to the classes, jars, and javadoc directories already created
by the build machinery. This new directory is the root of a tree where
the build puts generated java files and other artifacts which do not fit
tidily into the existing classes, jars, or javadoc directories.
2) Introduces a new variable ${out.base} which you can customize in your
ant.properties or on the command line. ${out.base} is the base directory
for all build artifacts. It defaults to be ${basedir}. That means that
if you do not customize ${out.base}, then most of your build artifacts
(including classes, jars, and javadoc) will continue to be dropped into
the same locations where they are dropped today. If you do customize
${out.base}, then all of the following artifacts will be dropped into
the ${out.base} directory:
changenumber.properties
classes
classes.pptesting
classes.storeless
generated
jars
javadoc
I'm hoping that these changes won't break anyone's build. But given the
complexity of Derby's build I can't make any guarantees--so please let
me know as soon as possible if you encounter a problem.
Before syncing with the mainline, I recommend that you first "ant
clobber" your subversion client. That should remove the build artifacts
which are currently dropped into the source tree. Then you can sync and
build. As a sanity check, you might want to run an "ant status"
afterward to see if there are any artifacts lingering in your source
tree. So here's how I recommend that you manage your next sync:
ant clobber
svn update
svn status
Again, please let me know if you encounter any problems.
Thanks,
-Rick