Допустим, у нас есть следующая многомодульная структура Maven:
all-microservices-root
|
`-- pom.xml (defines common dependencies/plugins for all microservices)
|
`-- microservice-a
|
|`-- repo-a
| |
| `-- pom.xml (inherits from parent-a)
|
|`-- service-a
| |
| `-- pom.xml (inherits from parent-a)
|
|`-- parent-a
| |
| `-- pom.xml (a POM packaging that inherits from all-microservices-root with some additional common dependencies for microservice-a modules)
|
|`-- springboot-exec-a
| |
| `-- pom.xml (inherits from parent-a)
|
`-- pom.xml (a POM packaging that consists only of <modules>: repo-a, service-a, and springboot-exec-a)
|
`-- microservice-b
|
|`-- repo-b
| |
| `-- pom.xml (inherits from parent-b)
|
|`-- service-b
| |
| `-- pom.xml (inherits from parent-b)
|
|`-- parent-b
| |
| `-- pom.xml (a POM packaging that inherits from all-microservices-root with some additional common dependencies for microservice-a modules)
|
|`-- springboot-exec-b
| |
| `-- pom.xml (inherits from parent-b)
|
`-- pom.xml (a POM packaging that consists only of <modules>: repo-b, service-b, and springboot-exec-b)
Существует несколько микросервисных проектов, все из которых наследуются от общего POM (all-microservices- root).
Каждый микросервисный проект имеет две упаковки POM:
- Родительский POM, содержащий дополнительные общие зависимости, и другие модули в проекте микросервиса наследуют от него
- POM, который используется исключительно для сборки других модулей (не наследуется ни от чего и содержит только
<modules>
Примечание: springboot-exe c - * имеет плагин Maven Spring Boot для переупаковки
Мой вопрос заключается в том, каковы преимущества настройки проекта, как описано выше, когда один POM отвечает только за сборку проекта, а другой отвечает за рефакторинг зависимостей mciroservice-Speci c по сравнению с положением все указанные общие c микросервисные зависимости и модули, все вместе в одном POM (в основном получают избавиться от родительских * модулей)?