Установка артефакта сборки без повторного запуска сборки - PullRequest
3 голосов
/ 22 июня 2011

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

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

при запуске окончательной установки он бомбит:

[ИНФОРМАЦИЯ] [установить: установить {выполнение: default-cli}]
[ИНФОРМАЦИЯ] ----------------------------------------------- -------------------------
[ОШИБКА] ОШИБКА ЗДАНИЯ
[ИНФОРМАЦИЯ] ----------------------------------------------- -------------------------
[INFO] Упаковка для этого проекта не присвоила файл артефакту сборки
[ИНФОРМАЦИЯ] ----------------------------------------------- -------------------------

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

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

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

1 Ответ

0 голосов
/ 28 июня 2011

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

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