описание проблемы
У нас есть несколько многомодульных проектов, которые зависят друг от друга. Что-то вроде этого:
- обмен сообщениями
- фреймворк
- другой компонент
У них есть отдельный репозиторий системы управления версиями, и допустим, что подмодули внутри обмена сообщениями и другого компонента используют пакеты из подмодулей framework. Все проекты представляют собой многомодульные проекты maven на основе OSGI. Все они имеют серверную часть и часть с графическим интерфейсом из одного источника (Eclipse RAP+RCP). Таким образом, получается трехэтапная сборка на основе maven для всех этих многомодульных проектов (поскольку сборки Tycho нельзя смешивать со старыми простыми сборками Maven):
- Построение серверной части
- Построение графического интерфейса RAP
- Создание части RCP GUI
И, наконец, есть многомодульный проект maven конечный продукт (давайте назовем его наш продукт), который использует обмен сообщениями, фреймворк strong> и другой компонент. Номер версии проекта наш продукт отличается от номера версии трех других проектов, которые имеют общий номер версии.
Мы строим все это с помощью Jenkins, и задания запускают друг друга в зависимости от дерева зависимостей. Компания решила использовать моментальные снимки, чтобы получить более прямую и быструю обратную связь между разработчиками трех фреймворков и разработчиками нашего продукта. Это может быть хорошей идеей, однако есть большая проблема.
Если во время цепочки сборки что-то сломается, репозиторий снимков будет содержать снимки обмена сообщениями, фреймворка и другого компонента, которые не могут работать вместе. Таким образом, разработчикам нашего продукта приходится ждать рабочего набора снимков (иначе они какое-то время не могут даже скомпилировать). Другая проблема заключается в том, что во время сборки набор моментальных снимков также не согласован.
Идея
Для обмена сообщениями, фреймворка и другого компонента в Jenkins есть определенная конечная работа. Если это завершится, набор снимков должен работать, чтобы команда нашего продукта могла его использовать. Поэтому мне нужно было бы каким-то образом СОБИРАТЬ моментальные снимки, созданные цепочкой сборки, и развертывать их, только если вся цепочка сборки прошла успешно.
- Есть ли какая-либо существующая возможность сделать это?
Моя идея состояла в том, чтобы просто изменить задания, чтобы сделать только установить, а не развернуть. Затем, в конце концов, я мог найти созданные снимки в локальном репозитории maven и развернуть их с помощью сценария.
- Существует некоторая концепция Staging для Maven (возможно, только с Nexus pro). Там что-то сказано о моментальных снимках?
Любая идея приветствуется. Однако я не могу изменить факт использования снимков. Так что нет смысла убеждать меня использовать релизы, а не снимки.