Я новичок в Maven и пытаюсь понять, почему модули моей компании организованы в «группы модулей», но каждый субмодуль явно объявляет своего родителя. Я не совсем понимаю, что пытается сказать POM Reference о разнице между наследованием и агрегацией .
Например, родительский модуль:
<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>
И один из его детей:
<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>
Зачем объявлять это обоими способами? Это избыточно? Чтобы сделать вещи еще более запутанными, некоторые из подмодулей утилит зависят друг от друга:
<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>
Извините, если это глупый вопрос, но вау, это сбивает с толку! Спасибо за вашу помощь.