Повторное использование одного и того же артефакта Maven в нескольких заданиях Jenkins/Hudson
Я настроил конвейер сборки для военного проекта, используя Jenkins и build-pipe-plugin. Он состоит из двух реальных работ и окончательной ручной работы, которая развертывается на вопросы и ответы.
Каждое из заданий настроено на запуск одного и того же проекта, активируя разные профили. Первая задача - быстрая - это сборка по умолчанию, компиляция исходников и запуск модульных тестов. Второе задание - браузер - запускает браузерные тесты на основе Selenium. Третье задание развертывает файл war на сервере Q&A .
Каждая работа создает новый файл войны, который беспокоит меня по двум причинам:
- Несмотря на то, что выполняются только необходимые цели, например, нет тестов при развертывании в Q&A, сборка все равно занимает слишком много времени, так как в файле WAR много файлов.
- Мы полагаемся на номер сборки от Дженкинса, чтобы выяснить, из какой сборки происходит артефакт. До сих пор это был номер из задания "fast", но теперь это номер из задания "qa-deploy".
Как настроить Jenkins и / или Maven для повторного использования артефактов из первого задания?
Я бы предпочел решение, которое не изменяет общую структуру проекта, так как наш проект имеет единый военный модуль, а его разделение означает больше работы по документированию изменений, и проще иметь все в одном месте.
2 ответа
Я действительно хотел бы предложить разделить это на два модуля и сделать так, чтобы тест интеграции объявлял зависимость от военного модуля, который также может содержать действие развертывания.
Это гораздо более гибкий подход и не так уж много усилий.
У вас может быть один проект, который создает ваш.war, а затем скопируйте его из этого проекта в зависимые проекты, используя плагин Copy Artifact здесь.