Предположим, я делаю полную сборку своего большого проекта, в котором есть 7 модулей, а на 6-м модуле сборка не удалась из-за неудачного теста. Есть ли способ начать сборку с момента ее сбоя?
Ответы:
Вы можете возобновить сборку с 6-го модуля, используя -rf
или --resume-from
:
-rf, --resume-from
Возобновить реактор из указанного проекта
Подробности см. В разделе Advanced Reactor Options .
subproject/subsubproject
как параметр
maven -rf <module name> clean install
mvn -rf :moduleName install
. (Не уверен, зачем нужен двоеточие, но, похоже, так оно и есть - по крайней мере, для моей установки.)
install
цель, потому что возобновляемая сборка может затем получить артефакты, которые уже были созданы из вашего локального репозитория Maven, для разрешения зависимостей от них. Я считаю плохой практикой запускать install
сборки, поскольку вы в конечном итоге загромождаете свой локальный репозиторий снимками, и в итоге вы можете зависеть от более старого снимка, чем вы ожидаете. Похоже, что для сборок, в которых только вы package
и не install
используете, использование -rf
не вариант: вам придется выполнять сборку целиком.
вы можете возобновить сборку из любого модуля, который хотите, с помощью -rf
команды. Например, если ваша сборка не удалась в myproject-proxy, вы можете использовать следующую команду:
mvn -rf myproject-proxy clean install
посмотрите сводку maven, и вы увидите выполненные модули и место остановки maven. тогда попробуйте это:
mvn clean install-Dmaven.test.skip=true -rf :yourModule
Синтаксис: mvn -rf имя модуля mavengoal или mvn --resume-from имя модуля mavengoal
Пример: mvn -rf admin-module clean install или mvn --resume-from admin-module clean install
-rf
не является сокращением --remove-from
. Это сокращение от--resume-from
Вы можете запустить сборку модуля 6 отдельно, чтобы убедиться, что он по-прежнему не работает, но я боюсь, что вам нужно собрать все модули с самого начала, если вы хотите запустить «большую» сборку.
Изменить: конечно, последующие сборки будут быстрее, потому что код модулей 1-5 уже скомпилирован, если вы не запустите чистую как часть своей сборки.