Hi Bram,
The first experience I would like to share is to minimise the number of full cleans :-)
No seriously, why would you want to do a full clean? Except when you're putting together your application before a new implementation to be sure of a 'neat and clean' installation set.
Do you also have the RBD preference of deleting all generated files before performing a clean, switched on?
Furthermore we have the same experience here. We're having a similar environment, also using Tomcat (8) as our local webserver.
Cleaning our projects (just the web projects, leaving the ui projects untouched) also seems to take forever (about 20 minutes). It sometimes occurs to me that, just when you think it's coming to an end, cleaning and/or regenerating starts all over again..... But not only when performing a full clean, sometimes RBD seems to decide to do a full clean and/or regeneration of our projects by itself, whilst I only have made some small alteration in a function, of which I'm sure it doesn't have any references in our web-projects (in which case I would understand RBD in performing a more comprehensive regeneration).
I guess it doesn't have to do much with the structure your application is built on (yours seems quite fine by me).
I bet you're using SOAP? Perhaps you can get a speed gain if you would switch to REST. It surely differs a lot in the quantity of code it has to clean and generate again and again;
When using SOAP RBD re-generates wsdd and wsdl files. When also cleaning/regenerating your UI project(s) RBD will also have to regenerate all SOAP EGL Client interfaces in your Rich UI project(s) , causing all dependent RichUI code to be regenerated. When switching to REST (can be quite a comprehensive task though) you will skip the need of generating wsdd, wsdl and EGL Client interfaces, and so much less code has to be cleant and/or regenerated.
Although I would not prefer in doing this you could also consider chopping up your web-projects (in some logical structure), and not performing full cleans, but just cleaning the web-project(s) you have made changes in.
Another possibility we have been considering is using EGLAR files. Our theory is, when you put parts of your projects in EGLAR files, and reference your web project(s) to these archives, this code will not have to be regenerated in a full clean. In my opinion it would only make sense if you have code that doesn't have to be changed a lot anymore, before putting it into an archive.
We haven't tried this yet.
Kind regards,
Guus
gweis