У меня есть многомодульный проект, в котором есть различные компоненты, которые следуют довольно стандартной схеме. Например:
root (pom)
...
module-NN (pom)
module-NN-launcher (jar)
module-NN-runtime (jar)
...
(там, где много проектов с модулем NN)
Каждый проект * -launcher использует собственный API для запуска инфраструктуры, предоставляющей общий API. Проекты * -runtime затем загружаются в этот фреймворк, чтобы «делать вещи».
В настоящее время у меня есть зависимости для модуля запуска, определенные в каждом * -launcher / pom.xml. Аналогично, у меня есть ссылки на общие API в * -runtime / pom.xml. Я мог бы обновить структуру проекта, чтобы она выглядела примерно так:
root (pom)
launcher (pom)
...
module-NN-launcher (jar)
...
runtime (pom)
...
module-NN-runtime (jar)
...
applications (pom)
...
module-NN (pom)
...
И поместите соответствующие зависимости в файлы launcher / runtime pom.xml, но это делает компоновку проектов гораздо менее интуитивно понятной.
Кто-нибудь сталкивался с подобной проблемой раньше? Какой совет вы можете дать при создании осмысленного макета без дублирования деталей в похожих проектах?