Я ищу руководство по управлению версиями зависимостей в проекте maven. Как в целом управляются сборки проектов микроуслуг с некоторыми общими библиотеками?
У меня есть родительский (тип pom) проект, который расширяется всеми проектами библиотек (тип jar) и микро-сервисами (fat jars).
Мы используем Git и есть только одна постоянная ветвь (транк), каждая другая ветвь эфемерна (функции, выпуски, исправления)
Обычно наша команда принимает на себя транк, который развернут и провереннашими комплектами дыма в Нижних средах.
Но когда мы хотим сделать релиз, мы создаем ветку релиза (либо из самого последнего коммита, либо из самого последнего коммита, где прошли все тесты) для всех библиотек и сервисных проектов на основе журнала изменений. После того, как ветки релиза созданы, проверены и развернуты в более высоких средах, мы создаем Git-теги в ветке релиза HEAD для любых исправлений ошибок в будущем.
Проблема, которую я пытаюсь решить, состоит в том, чтобы изолировать сборки релиза от транкасборки и убедитесь, что при сборке проекта микросервиса всегда выполняется извлечение определенной версии библиотеки при сборке из ветви выпуска. Мы не хотим обновлять и фиксировать наши стволы с помощью версий выпуска, поскольку это может повлиять на сборки ствола с использованием версий SNAPSHOT.
Я понимаю, что управлять выпусками нелегко, и я не ищу волшебного решения дляавтоматизировать весь этот процесс одним нажатием кнопки. Мне любопытно узнать, как это делается в другом месте. 101
Буду очень признателен за любые указания или ссылки на это.
Большое спасибо за ваше время.