Maven, Микросервисы, (Общие) Модули

Проблема, с которой я столкнулся, довольно стандартна: мне нужно иметь некоторую общую кодовую базу между микро-сервисами, несмотря на то, что такой подход не приветствуется, как я слышал. На данный момент у меня есть общий код в виде отдельного модуля, который встроен в jar и развернут на локальном Nexus. Затем он используется как стандартная зависимость компиляции maven. Мы используем CI для сборки всех модулей. Поэтому, когда я хочу изменить общий код и использовать его в микросервисе, я не могу этого сделать. Я должен пройти через "двухэтапный процесс", когда я впервые нажимаю на общие изменения модуля, подожду, пока модуль не будет собран и получит новую версию; и только тогда я могу нажать на микросервисный код, который использует эту новую версию. Это по крайней мере неловко, на самом деле это очень раздражает.

Могу ли я использовать общий модуль как своего рода "исходную зависимость" в maven? Как правильно это реализовать?

1 ответ

Важный вопрос: нормально ли для разных микросервисов использовать разные версии общего фляги?

Если да: вам не нужно выдвигать изменения. Вы обновляете свою общую банку и тестируете ее отдельно (насколько это возможно). При обновлении микросервиса вы можете обновить зависимость (если хотите). Микросервисы затем запускают (возможно) разные версии вашего общего фляги.

Если нет: вы можете собрать банку со всеми микросервисами в одном многомодульном проекте, но это означает, что все они должны быть собраны вместе каждый раз. Вы не можете изменить и построить один больше. Но если они полагаются на общий код в одной и той же версии, они тесно связаны, так что создание только одного из них, вероятно, в любом случае не очень хорошая идея.

Другие вопросы по тегам