Maven composición de proyecto multimódulo con respecto al intercambio de dependencias

Hay algunas preguntas similares, pero nada como esto. ¿Cómo lidiar con esta situación (escenario típico):

Un proyecto de 8-11 proyectos secundarios, que tiene un artefacto / proyecto principal y un proyecto principal que usa / declara principalmente a los otros como módulos.

El problema es que todos los proyectos "estrictamente" comparten solo las dependencias comunes, comotestng, logging, apache commons and stuff. Pero siempre me gusta 3 de ellos usan 50-60% de los mismos deps específicos (apache-chemistry, jackrabbit, abdera, etc.), otros 2-3 de ellos también usan 50-60% de las mismas pero diferentes dependencias. Y el principal usa muchos de los mismos departamentos.

No puedo poner esos departamentos compartidos "no estrictamente" en el proyecto principal para que otros los hereden. Entonces solo se heredan los departamentos comunes. Y hay toneladas de dependencias duplicadas. Y solo puedo administrar sus versiones a través de<dependencyManagement>.

Otra opción es hacer que el pom padre contenga la mayoría de las dependencias, pero los proyectos secundarios heredan incluso aquellos que no necesitan.

Podría tener más de 1 proyecto principal, pero no se siente bien. Además, la herencia del proyecto principal podría ser una pesadilla, porque no sabe qué dependencias necesita el proyecto, si no documenta / comenta la definición de pom principal correctamente.

Otra forma es crear artefactos de pom que solo sirven como contenedores de dependencias: declaran grupos específicos de dependencias, de modo que los módulos simplemente declaran aquellos para obtener dependencias transitivas. Pero bueno, ¿te gustaría desplegar y cometer algún tipo de

OneDepArtifact declarandojackrabit, abdera, chemistry

AnotherDepArtifact declarandohtmlcleaner, google-api, tika

ThirdDepArtifact declarandospring, httpclient, selenium

Es un gran desastre, no estoy seguro si uso<dependencyManagement> correctamente, parece ser solo útil para administrar versiones de dependencia.

Estaba pensando en adaptar el desarrollo de mi aplicación al "diseño multimódulo maven". Pero si desea crear servicios / beans de primavera, que solo usan varias bibliotecas, en un módulo, no las implementa en un módulo diferente, solo porque usan la biblioteca que otro módulo también usa: -)

Respuestas a la pregunta(3)

Su respuesta a la pregunta