У нас есть Maven агрегированный POM проект, как показано ниже
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.abc</groupId>
<artifactId>project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>module-1</module>
<module>module-2</module>
<module>module-n</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.xyz<groupId>
<artifactId>framework</artifactId>
<version>1.1.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.xyz</groupId>
<artifactId>dao</artifactId>
<version>1.1.1-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
модуль-2 имеет зависимость от модуля-1
И модуль-n имеет зависимость от модуля-1 и модуля-2.
Реактор Maven может разрешать все межмодульные зависимости (порядок сборки - модуль-1, модуль-2, модуль-n).
Некоторые общие компоненты из com.xyz также используются модулями (например, framework). Они извлекаются с удаленного сервера артефактов, в то время как артефакты зависимости между модулями (например, module-1.jar) извлекаются локально во время сборки maven.
Мой вопрос - как лучше связать зависимости? По модулю или по артефактам, хранящимся на сервере артефактов? Этот пример имеет оба использования. Я не мог понять, при каких обстоятельствах мы должны
1) сгруппировать все взаимозависимые модули под одним и тем же родительским компонентом ИЛИ
2) всегда извлекают зависящие артефакты из удаленного артефактного репозитория и пусть каждый модуль строится независимо
Есть плюсы и минусы? Извините за мой плохой английский. Я надеюсь, что мой вопрос ясен. Спасибо!