Как настроить работу Maven Jenkins только для сборки модулей, в которых я зарегистрировался в коде? - PullRequest
0 голосов
/ 29 ноября 2018

Я использую Maven 3.5, Git и Jenkins 2.138.1.У меня есть работа Maven Jenkins для моего многомодульного проекта Maven.Обычно, если я хочу собрать только один модуль в Maven и на что бы он ни влиял, я могу запустить

mvn install -pl myModule -am

из командной строки.Что я хотел бы сделать, так это настроить свою работу в Jenkins для сборки только затронутых модулей Maven и их зависимостей, если кто-то проверяет код для определенного модуля, тем самым ускоряя мою сборку.Как я могу настроить это в Jenkins?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Это старый, но должен помочь вашему делу, https://blog.soebes.de/blog/2016/08/12/maven-incremental-module-build/ и кредиты Beratung Schulung:)

0 голосов
/ 03 декабря 2018

Если вы используете FreeStyle Porject:
, вам необходимо установить Плагин проекта Maven
Тогда есть опция " Инкрементная сборка только для сборки. Измененные модули "

enter image description here

Как говорится, SCM будет обрабатывать, какие модули были изменены, и будет строить только эти модули.

В случае конвейератогда указанная вами команда может быть использована.то есть

 mvn install -pl myModule -am

Проблема в том, что нужно знать, какие модули собирать при регистрации

mvn install -amd -pl $(git status | grep -E "modified:|deleted:|added:" | awk '{print $2}' | cut -f1 -d"/")

Приведенная выше команда должна работать.

ЕСЛИ вы доизменение pom.xml
Вам понадобится Добавочный плагин Maven

Приведенный ниже URL дает подробное объяснение того, как этого добиться с помощью maven: Создание Jenkins aпродукт, состоящий из многих проектов Maven?(с плагином Jenkins Pipeline?)

Надеюсь, это поможет:)

...