I personally don't like the idea of always running from the build directory.
The build directory contains a lot of temporary files (classes, test cases,...), I would rather prefer to 2 configurations.
The "Dev" configuration, by default. All scripts runs out of build/classes and/or build/contrib/<subProject>/classes.
The "Prod" configuration, you type ant dist or ant package, the dist directory is populated with new jars (based on build/classes), build directory is deleted. Scripts will now use jars from the dist directory. There's a hierarchy inside the dist directory:
CHUKWA_HOME/dist/ <Chukwa's jars>
External jars should come from CHUKWA_HOME/lib/ or CHUKWA_HOME/contrib/<SubProject>/lib/
conf could also be renamed to template and the real configuration will always be generated in build/conf and moved to dist/conf for the "Production" mode
There's no longer a chukwa-xxx inside the build directory.