Estructura de la aplicación web Java?

Perdón por hacer esta simple pregunta. He buscado mucho y no puedo encontrar una respuesta confiable que sea exactamente lo que quiero. Es por eso que creé esta pregunta.

completamos dos proyectos de spring en Java.

Cada proyecto que hemos creado tiene una estructura de carpetas diferente en WebContent para la separación de modules.

Ahora vamos a comenzar un nuevo proyecto usando eclipse con SVN y el proyecto tiene tres modules.

La estructura de la carpeta WebContent para el Proyecto uno es ,

 WebContent - moduleOne - conf - moduleOne.conf - css - moduleOne.css - js - moduleOne.js - jsp - moduleOne.jsp - images - moduleOne.png - moduleTwo - conf - moduleTwo.conf - css - moduleTwo.css - js - moduleTwo.js - jsp - moduleTwo.jsp - images - moduleTwo.png - META-INF - WEB-INF - lib - web.xml 

La estructura de la carpeta WebContent para el Proyecto uno es,

 WebContent - conf - moduleOne - moduleOne.conf - moduleTwo - moduleTwo.conf - css - moduleOne - moduleOne.css - moduleTwo - moduleTwo.css - images - moduleOne - moduleOne.png - moduleTwo - moduleTwo.png - js - moduleOne - moduleOne.js - moduleTwo - moduleTwo.js - jsp - moduleOne - moduleOne.jsp - moduleTwo - moduleTwo.jsp - META-INF - WEB-INF - lib - web.xml 

Ahora estamos en una situación para elegir la forma preferida de crear una estructura de carpetas.

También debería ser:

  1. Fácilmente personalizable.

  2. Fácil de modificar un module por separado, si surge algún requisito nuevo.

Cualquier nueva idea o método y todas las respuestas también serían muy apreciadas.

Me gusta mantener los resources web estáticos en un directory de 'resources' y todas las vistas y configuraciones debajo de WEB-INF. Esto asegura que puedo habilitar permissions de acceso liberales y almacenamiento en caching en 'resources'. Además, esto garantiza que los files .jsp no serán accesibles directamente a través de una URL (¡a less que estropees tu configuration!). Aparte de eso, tu primera solución anterior es sólida. Especialmente, a medida que se vuelve más fácil aplicar security a nivel de module y otra configuration basada en la ruta al module relevante.

Entonces, como un ajuste a la solución 1, recomendaría algo como:

 - resources - moduleOne - css - moduleOne.css - js - moduleOne.js - images - moduleOne.png - moduleTwo - css - moduleTwo.css - js - moduleTwo.js - images - moduleTwo.png - META-INF - WEB-INF - modules - moduleOne - conf - moduleOne.conf - views - moduleOneViewOne.jsp - moduleTwo - conf - moduleTwo.conf - views - moduleTwoViewOne.jsp - lib - web.xml