Общепринятая практика для Непрерывной Интеграции проектов Мультимодуля Знатока

Я проверил вокруг и не мог найти хороший ответ на это:

У нас есть проект Знатока мультимодуля, который мы хотим непрерывно интегрировать. Мы думали о двух стратегиях обработки этого:

  • Имейте наш непрерывный сервер интеграции (TeamCity, в этом случае, но я использовал других прежде, и у них, кажется, есть та же проблема), указывают на файл АНГЛИЧАНИНА агрегатора и просто создают все сразу
  • Имейте нашу непрерывную точку сервера интеграции в каждом отдельном модуле

Существует ли стандартная, предпочтительная практика для этого? Я проверил Переполнение стека, Google, Непрерывную книгу Интеграции, и ничего не нашел, но возможно я пропустил его.

7
задан Pascal Thivent 15 May 2010 в 15:47
поделиться

2 ответа

По крайней мере, стандартная практика с Хадсоном - ваш первый вариант. Во-первых, в maven ваша сборка может работать не очень хорошо, если все проекты не находятся в реакторе вместе. С другой стороны, попытка сделать их отдельными сборками поставит вас в чертовски сложное управление снимками. Если один в середине изменится, и вы попытаетесь построить только его, maven будет искать его зависимости в виде снимков. То, что он получит, будет зависеть от порядка, в котором строятся другие проекты, и от того, публикуете ли вы снимки.

Если у вас так много проектов или таких несвязанных друг с другом проектов, что создание их всех является проблемой, то я предлагаю вам рассмотреть возможность дезагрегации. Сделайте родительский проект отдельным выпущенным проектом, дайте каждому из них (или каждой их подгруппе) структуру магистралей / тегов / ветвей и сделайте их зависимыми от выпусков, а не снимков.

6
ответ дан 7 December 2019 в 03:12
поделиться

Идеальной практикой было бы запустить сборку реактора для сборки только модулей, содержащих изменения (с опцией - projects ) и на модулях, которые зависят от них (с опцией - also-make-dependents ).

Но TC на данный момент не поддерживает эквивалентную функцию (проверьте TC 5 EA: Триггеры зависимости Maven 2 не работают ... ), поэтому рекомендуется запускать полную сборку реактора (вы не хотите, чтобы отдельный модуль ломал модули, зависящие от него, без предупреждения, вы хотите, чтобы согласованные наборы SNAPSHOTS были синхронизированы).

3
ответ дан 7 December 2019 в 03:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: