Как сделать инкрементную сборку Jenkins Maven на большом многомодульном проекте - PullRequest
0 голосов
/ 11 ноября 2018

У меня большой многомодульный проект, для сборки которого в Jenkins требуется около часа.

Я использую Maven CI-дружественное управление версиями с использованием $ {revision} для всех версий модулей в мульти-модуле.модульный проект, и я передаю что-то вроде -Drevision = $ {BUILD_NUMBER} от Jenkins.

Это прекрасно работает, но оно настолько неэффективно, когда развернуто в команде из 20 человек с новой сборкойза каждый запрос на извлечение.Кто хочет ждать час каждый раз, когда меняется одна строка кода?!?

Как получить инкрементную сборку, работая со структурой моего проекта?

Очевидная проблемас пометкой «инкрементная сборка» является то, что когда я собираю измененные модули (например, версию 5), все они будут зависеть от неизмененных модулей также с версией 5, но последняя версия, которая была фактически построена, может быть 1,2,3 или 4.

Таким образом, $ {revision} во всем многомодульном проекте нарушит пошаговое построение

Другая моя проблема в том, что я использую несколько ведомых устройств, то есть я не могу просто полагаться на неизменность файловой системы.со времени последней сборки (то же самое локальное репо Maven, то же рабочее дерево и т. д.).

Чтобы обмениваться неизменными артефактами между сборками на разных подчиненных устройствах, мне нужно было бы использовать репо Maven (например, Nexus) или иметькакое-то копирование файла через SSH (например, каждая сборка переносится обратно на Master, а затем на slave)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...