Повторное использование одного и того же артефакта Maven в нескольких заданиях Jenkins/Hudson

Я настроил конвейер сборки для военного проекта, используя Jenkins и build-pipe-plugin. Он состоит из двух реальных работ и окончательной ручной работы, которая развертывается на вопросы и ответы.

Построить трубопровод

Каждое из заданий настроено на запуск одного и того же проекта, активируя разные профили. Первая задача - быстрая - это сборка по умолчанию, компиляция исходников и запуск модульных тестов. Второе задание - браузер - запускает браузерные тесты на основе Selenium. Третье задание развертывает файл war на сервере Q&A .

Каждая работа создает новый файл войны, который беспокоит меня по двум причинам:

  1. Несмотря на то, что выполняются только необходимые цели, например, нет тестов при развертывании в Q&A, сборка все равно занимает слишком много времени, так как в файле WAR много файлов.
  2. Мы полагаемся на номер сборки от Дженкинса, чтобы выяснить, из какой сборки происходит артефакт. До сих пор это был номер из задания "fast", но теперь это номер из задания "qa-deploy".

Как настроить Jenkins и / или Maven для повторного использования артефактов из первого задания?

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

2 ответа

Решение

Я действительно хотел бы предложить разделить это на два модуля и сделать так, чтобы тест интеграции объявлял зависимость от военного модуля, который также может содержать действие развертывания.

Это гораздо более гибкий подход и не так уж много усилий.

У вас может быть один проект, который создает ваш.war, а затем скопируйте его из этого проекта в зависимые проекты, используя плагин Copy Artifact здесь.

Другие вопросы по тегам