Установка артефакта сборки без повторного запуска сборки

У меня довольно сложный рабочий процесс сборки для одной из моих сборок Jenkins. Проект содержит два модуля. Модуль M1 создает службу, а модуль M2 создает клиент службы. M1 зависит от M2 (не спрашивайте меня, почему). M2 нужны заглушки, созданные из ejb в M1. Таким образом, мы находимся в циклической зависимости, которую я пытался обойти с помощью следующего порядка сборки.

  1. mvn чистая установка (для всего проекта)
  2. mvn package -PCI (для M2 с профилем для сбора всех зависимостей, включая банку M1)
  3. копировать артефакты сборки и зависимости на другую машину для создания заглушки
  4. создавать заглушки
  5. перезаписать артефакт сборки M2 версией, содержащей заглушки
  6. mvn install:install (для M2)

при запуске финальной установки вылетает:

[INFO] [install:install {execution: default-cli}]
[INFO] ----------------------------- ----------------------------------------------------------
[ОШИБКА] СБОРКА ОШИБКА
[ИНФОРМАЦИЯ] ---------------------------------------------------------- -----------------------------
[INFO] Упаковка для этого проекта не назначила файл артефакту сборки< br> [ИНФОРМАЦИЯ] ------------------------------------------------------------- ---------------------------

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

Затем я настроил задание Jenkins для явного архивирования jar-файла моего сервисного клиента с опцией пост-сборки в дополнение к функции автоматического архивирования интеграции maven. В результате у меня были заархивированы банки клиента службы для работы Дженкинса. Один был на уровне проекта (желательная версия с заглушками) и один на M2 (без заглушек). Само собой развернули версию без заглушек.

Любая идея, как я могу выйти из этой дилеммы, не меняя структуру проекта. Я могу добавлять вещи в файлы pom, пока желания разработчика все еще выполняются. Работа Дженкинса - моя область.


person Peter Schuetze    schedule 22.06.2011    source источник


Ответы (1)


Похоже, вам нужно реорганизоваться. Можно ли выделить зависимости server->client в клиенте в отдельную банку и изменить зависимость от клиента на зависимость от этой новой банки?

person Ed Staub    schedule 28.06.2011
comment
Реорганизация мало помогает. Проблема в том, что я не хочу рассказывать maven, как создавать заглушки, поэтому Дженкинсу нужно сделать заглушку. Судя по всему, Jenkins архивирует заглушки до их создания. Шаг 1 является основным этапом сборки. - person Peter Schuetze; 01.07.2011