Предположим, я делаю полную сборку своего большого проекта, в котором есть 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 уже скомпилирован, если вы не запустите чистую как часть своей сборки.