Ежедневно нам приходится десятки раз пересобирать проект. Это занимает от нескольких секунд до минут рабочего времени, которые можно было бы провести более полезно нежели тупо наблюдая за выполнением процедуры билда. В данной заметке рассмотрим пару уловок, позволяющих оптимизировать время на сборку проекта.
1. rf опция.
Большинство больших проектов разбиваются на несколько модулей, при этом запустив сборку родительского проекта запускается сборка всех дочерних. При падении сборки на одном из последних дочерних проектов, исправление ошибки и повторный перезапуск сборки приведёт к сборке всех всех модулей. Специально для таких случаев придумана опция resume(mvn -rf [родительский проект]), которая запустит билд с последнего поломанного проекта, не пересобирая уже собранные.
2. pl опция.
Ещё одна опция упрощающая жизнь, позволяет собирать только указанные проекты. В тех случаях когда нет необходимости собирать весь проект, а нужны только некоторые его модули можно воспользоваться опцией pl:
mvn -pl [модуль1],[модуль2] clean install
UPD.
Эмпирическим путём было установлено что опция pl является транзитивной. Тоесть если ваша структура проекта выглядит следующим образом:
корень
-модуль1
-модуль2
--сын_модуля2
-модуль3
--дочь_модуля3
И если вам необходимо сбилдить модуль1 и дочь_модуля3, то это возможно сделать с помощью следующей команды:
mvn -pl <модуль1>,<модуль3\дочь_модуля3> clean install
по мотивам 5 Maven Tips by Shekhar Gulati
2 комментария:
Любопытно, а вот интересно, включение сборки отдельных дочерних модулей работает для детей детей? Надо сегодня проверить.
Я кстати свой велосипед написал с эксклюдом проектов которые не требуется собирать (на базе профилей).
intr, обновил заметку с учётом вашего коментария.
Отправить комментарий