Restricciones arquitectónicas en Java [cerrado]

Quiero asegurarme de que mi proyecto no contenga dependencias innecesarias entre los paquetes. Por ejemplo, quiero estar seguro de que el proyecto tiene una estructura de capas. Es decir. el modelo está por debajo de todo, la lógica de negocios depende del modelo, la vista depende de la lógica de negocios y el modelo. Cada una de las capas se coloca en su propio paquete.

¿Podría recomendar alguna, preferiblemente herramientas de código abierto que me permitan especificar estas restricciones y verificarlas como parte de la integración continua?

PD Sé que puedo separar el proyecto en módulos de maven separados. Desafortunadamente, mi caso del mundo real es más complejo que el sistema de 3 capas. Si utilizara los módulos de Maven, tendría varias docenas de módulos bastante pequeños.

Respuestas a la pregunta(6)

Su respuesta a la pregunta