Parent first – first try to load classes using the parent class loader. This is the default. (JVM behavior).
Application first (parent last) – try to load classes using the application’s class loader (web or application) before delegating to the parent. This allows the application to override classes in the parent.
If you still need to work with a large set of JEE projects/modules :
Consider using an Artifact repository such as Maven or Ivy.
Separate the deployment process for development and integration. We can have a lightweight deployment, where each team get just the modules it needs, full deployment will be performed in the integration environment.