The main reason for the uber-build is really the circular dependency between the modules in geronimo "modules" and openejb. Openejb requires many of the geronimo modules, and geronimo assembly requires openejb.
This could be fixed by moving geronimo assembly out of modules. I suggest making a bunch of assemblies, starting with assembly/default which will include current modules/assembly.
The result is that projects can be built in this order:
This can be done by a normal continuous integration tool rather than the uber-build.