Bugzilla – Bug 6990
Consolidate libraries, pre-generate stubs
Last modified: 2010-04-06 10:18:32
You need to log in before you can comment on or make changes to this bug.
For the services installation, conslolidate jar files into a lib gar that is deployed first. They all currently end up in GT's lib directory together anyhow and it is actually rare (although possible) that services are deployed in a more standalone way (if that happens in this new scheme, only some disk space is lost). This is a cheap-to-get "mini-maven" step that will yield a lot of time savings for developers. We can't take the time currently to go to something more like ivy/maven.
Also pre-generate the stub libraries: these will only change when the (compact) WSDL changes anyhow (using special invocation), there should be no need to have these in the main build process any longer. They are more like libraries.
I believe the bug6990 branch is ready to be merged in, could probably do with another person testing first. Locally the build system will no longer spend 2 minutes 14 seconds generating stub jars: that is 65% of the build time on this computer.
Another consequence of the changes in that branch is that you can open up a repository clone in an IDE and: 1) add the existing 'src' directories as places to find source code (IDEA will offer you a list of these to add when you create a new project based on pre-existing code files). 2) add the "lib/services" and "lib/generated" directories as library (jar) directories. ... and you should be ready to hack it up. We have been discussing Maven recently, one of the primary objectives being an easier developer experience (you can load Maven projects directly into IDEs and be pretty much ready to work). This library consolidation gets us close to that ideal without the cost of switching to Maven or some other dependency system. The downside is that if you are using one of the (usually developer-only) build system subtargets, there could be unecessary jars in the container lib directory.
I tested this a bit and merged it into the master branch: http://github.com/nimbusproject/nimbus/commit/f1d6c74bfd04068b1dabefb89983e2e2c711100c Works great and the build is definitely faster.