Можем ли мы начать сборку maven с того места, где она не удалась

89

Предположим, я делаю полную сборку своего большого проекта, в котором есть 7 модулей, а на 6-м модуле сборка не удалась из-за неудачного теста. Есть ли способ начать сборку с момента ее сбоя?

Шехар
источник

Ответы:

134

Вы можете возобновить сборку с 6-го модуля, используя -rfили --resume-from:

-rf, --resume-from
          Возобновить реактор из указанного проекта

Подробности см. В разделе Advanced Reactor Options .

Паскаль Тивент
источник
Спасибо за это. Я попробую
Шекхар
1
это хорошо, для подпроектов просто используйте subproject/subsubprojectкак параметр
akostadinov
13
Пример:maven -rf <module name> clean install
Zoltán
9
Это сработало для меня только тогда, когда я добавил имя модуля с двоеточием, например mvn -rf :moduleName install. (Не уверен, зачем нужен двоеточие, но, похоже, так оно и есть - по крайней мере, для моей установки.)
Стив Чемберс,
3
Похоже, это работает только в том случае, если ваша первоначальная сборка имела installцель, потому что возобновляемая сборка может затем получить артефакты, которые уже были созданы из вашего локального репозитория Maven, для разрешения зависимостей от них. Я считаю плохой практикой запускать installсборки, поскольку вы в конечном итоге загромождаете свой локальный репозиторий снимками, и в итоге вы можете зависеть от более старого снимка, чем вы ожидаете. Похоже, что для сборок, в которых только вы packageи не installиспользуете, использование -rfне вариант: вам придется выполнять сборку целиком.
Франс,
13

Вот пример

mvn clean install -rf :your-module
M Sach
источник
9

вы можете возобновить сборку из любого модуля, который хотите, с помощью -rfкоманды. Например, если ваша сборка не удалась в myproject-proxy, вы можете использовать следующую команду:

mvn -rf myproject-proxy clean install
user3401235
источник
Мне нужно было поставить двоеточие, чтобы это работало, например -rf: yourModule См. Другие ответы.
Gapmeister66 02
8

посмотрите сводку maven, и вы увидите выполненные модули и место остановки maven. тогда попробуйте это:

mvn clean install-Dmaven.test.skip=true -rf :yourModule
Антонио Мартин
источник
-1

Синтаксис: mvn -rf имя модуля mavengoal или mvn --resume-from имя модуля mavengoal

Пример: mvn -rf admin-module clean install или mvn --resume-from admin-module clean install

scott_dennis
источник
-rfне является сокращением --remove-from. Это сокращение от--resume-from
Гили
-2

Вы можете запустить сборку модуля 6 отдельно, чтобы убедиться, что он по-прежнему не работает, но я боюсь, что вам нужно собрать все модули с самого начала, если вы хотите запустить «большую» сборку.

Изменить: конечно, последующие сборки будут быстрее, потому что код модулей 1-5 уже скомпилирован, если вы не запустите чистую как часть своей сборки.

рыба
источник
Да .. Я знаю это .. Но я искал способ начать сборку с того момента, когда она потерпела неудачу ..
Шекхар