Soy nuevo en Maven, y estoy tratando de entender por qué los módulos de mi compañía están organizados en 'grupos de módulos', pero también cada submódulo declara su padre explícitamente. No entiendo muy bien lo que la Referencia POM está tratando de decir sobre el difference between inheritance and aggregation.Apache Maven: ¿Cuál es la diferencia entre Herencia, Agregación y Dependencias?
Por ejemplo, un módulo primario:
<groupId>example.group</groupId>
<artifactId>util</artifactId>
<packaging>pom</packaging>
<name>Util Parent</name>
<modules>
<module>util_client</module>
<module>util_core</module>
<module>util_server</module>
</modules>
y uno de sus hijos:
<parent>
<artifactId>util</artifactId>
<groupId>example.group</groupId>
<version>trunk-SNAPSHOT</version>
</parent>
<groupId>example.group.util</groupId>
<artifactId>util_core</artifactId>
<packaging>jar</packaging>
<name>Util Core</name>
Por qué declaran las dos cosas? ¿Es redundante? Para hacer las cosas aún más confusas, algunos de los submódulos util dependen unos de otros:
<groupId>example.group.util</groupId>
<artifactId>util_client</artifactId>
<packaging>jar</packaging>
<name>Util Client</name>
<dependencies>
<dependency>
<groupId>example.group.util</groupId>
<artifactId>util_core</artifactId>
</dependency>
</dependencies>
Lo siento si esto es un doozy de una pregunta, pero ¡esto es confuso! Gracias por tu ayuda.
Entonces, ¿por qué exactamente no quiero especificar 'util_core' como un submódulo de' util_client'? ¿'Util_client' todavía compilaría? –
No se compilará hasta que 'util_core' se haya instalado' mvn install' Si lo hace desde el nivel superior, compilará todos en orden. –