У меня довольно сложный рабочий процесс сборки для одной из моих сборок Jenkins. Проект содержит два модуля. Модуль M1 создает службу, а модуль M2 создает клиент службы. M1 зависит от M2 (не спрашивайте меня, почему). M2 нужны заглушки, созданные из ejb в M1. Таким образом, мы находимся в циклической зависимости, которую я пытался обойти с помощью следующего порядка сборки.
- mvn чистая установка (для всего проекта)
- mvn package -PCI (для M2 с профилем для сбора всех зависимостей, включая банку M1)
- копировать артефакты сборки и зависимости на другую машину для создания заглушки
- создавать заглушки
- перезаписать артефакт сборки M2 версией, содержащей заглушки
- mvn install:install (для M2)
при запуске финальной установки вылетает:
[INFO] [install:install {execution: default-cli}]
[INFO] ----------------------------- ----------------------------------------------------------
[ОШИБКА] СБОРКА ОШИБКА
[ИНФОРМАЦИЯ] ---------------------------------------------------------- -----------------------------
[INFO] Упаковка для этого проекта не назначила файл артефакту сборки< br> [ИНФОРМАЦИЯ] ------------------------------------------------------------- ---------------------------
Поэтому я пришел к выводу, что, поскольку я уже использую Jenkins и все равно выполняю развертывание в нашем каталоге моментальных снимков, мне не о чем беспокоиться, и я могу не использовать локальное развертывание, поскольку оно все равно будет извлекать более новую версию из репозитория моментальных снимков. В результате Jenkins архивирует артефакт для задания после запуска установки. Поскольку окончательную установку я не запускал, была развернута версия без заглушек (полагаю, из шага 2).
Затем я настроил задание Jenkins для явного архивирования jar-файла моего сервисного клиента с опцией пост-сборки в дополнение к функции автоматического архивирования интеграции maven. В результате у меня были заархивированы банки клиента службы для работы Дженкинса. Один был на уровне проекта (желательная версия с заглушками) и один на M2 (без заглушек). Само собой развернули версию без заглушек.
Любая идея, как я могу выйти из этой дилеммы, не меняя структуру проекта. Я могу добавлять вещи в файлы pom, пока желания разработчика все еще выполняются. Работа Дженкинса - моя область.