Так что я работаю над кучей микросервисов на основе весенней загрузки. Дело в том, что все эти сервисы имеют одинаковый код подтверждения пользователя, один и тот же совет обработчика исключений, одинаковое ведение журнала на основе AOP и т. Д. c Теперь я хочу извлечь этот код в отдельный репозиторий и использовать этот код с каждым из сервисов в качестве их компонента (и я хочу иметь возможность редактировать этот код с помощью кода сервиса, в который я буду добавлять его). По сути, когда я создаю код этого сервиса, я должен быть в состоянии построить и тот общий проект кода, который будет присутствовать в качестве подкаталога в каждом из сервисов. Визуально моя текущая ситуация такова:
service A (present in its own repo,contains common code)
pom.xml
service B (present in its own repo,contains common code)
pom.xml
....etc.
То, чего я хочу достичь, это:
service A
\-----pom.xml
\----src\main\java\com\company\project\sub-directory A
\----src\main\java\com\company\project\sub-directory B
.....
\----src\main\java\com\company\project\sub-directory common (common code extracted, will be a spring boot project)
Аналогично для службы B. Теперь я попробовал несколько подходов до сих пор и имею пока не нашел решения. Самым многообещающим, что я подумал, было следующее:
- Разделите общий код в новый репозиторий.
- Превратите каждую из служб в
pom
упаковку вместо текущей jar - Добавьте общий код в виде подмодуля git, куда бы я ни захотел в проекте, в качестве подкаталога и также включите его в
pom.xml
каждой из служб как
<modules>
<module>path-to-sub-module</module>
</modules>
Кроме того, общий проект не будет иметь какого-либо определенного c родительского элемента, такого как служба A или служба B. Это будет простой весенний проект загрузки с родителем как spring-boot-starter-parent
. Поэтому я попробовал это, и после выполнения вышеизложенного, когда у меня есть общий проект в качестве подкаталога, возникает много ошибок компиляции, потому что структура пакета для общего проекта теперь изменилась. Если каждая из моделей была в пакете, скажите:
package com.project.poc.models;
сейчас выдают ошибку, говоря, что это не правильный пакет и это правильно, что должно быть
package com.project.poc.common.src.main.java.com.project.poc.models;
Все, что я можно с этим поделать? или есть что-то еще, что-то лучшее, что вы, ребята, можете предложить, чтобы я мог выполнить мое требование?
Спасибо