We have an application with a huge codebase with 7-10 modules in it. Some of these modules are J2EE apps, others are J2SE process and others are common & framework modules. As of today, all the code is in a single CVS module with make files to build and package (Solaris packaging). We are looking for ways to modularize this code base and split it into individual modules with dependencies reflecting the architectural relationships. For EX: Module 1 requires Module 3 and 4 etc. Can you guys provide some tips on how to do this? Are there any best practices?
You could create one project per module and write documentation about dependencies.
Then you could package whole the application with a version number related with the version number of each modules.
MyApplication 3.2 is based on Module A v2.5, Module B v1.5, Module C v3.6, ...