Как пропустить тесты при использовании реактора Maven?
-
27-09-2019 - |
Вопрос
Я работаю над проектом Maven Multi-Modules. Я хочу создать данный модуль и пропустить тесты устройства для скорости процесса сборки.
Я пробовал следующее:
mvn reactor:make -Dmake.folders=search -Dgoals=package,-DskipTests
mvn reactor:make -Dmake.folders=search -Dgoals=package -Dmaven.test.skip=True
Однако это не влияет вообще. Любые подсказки?
Решение
Ваша первая строка выглядит как правильная идея, но вместо -Dgoals
Вы должны использовать -Dmake.goals
.
Плагин реактора запускает вторую копию Maven, чтобы сделать свою магию. Эта копия Maven не обязательно имеет все флаги и варианты, которые вы передали в вашу первую копию Maven, включая флаг --debug, системные свойства и -двипсипты.
Вы можете пройти дополнительные аргументы порожденным Maven, обращаясь к ним в качестве целей с -dmake.gools, как это:
mvn reactor:resume -Dmake.folders=barBusinessLogic -Dmake.goals=install,-DskipTests
Другими словами, «цели» являются просто дополнительными параметрами командной строки, передаваемой порожденной Maven; Они не обязательно должны быть «целями».
Если вы хотите получить действительно фантазии, вы можете предпочесть просто сушить пробел плагин реактора в режиме -dmake.Printonly Mode, описанный выше. Это распечатает команду, которую плагин использовал для создания, но вы можете настроить эту командную строку в контент вашего сердца!
Другие советы
Учитывая структуру проекта
/
A/pom.xml
B/pom.xml
C/pom.xml
D/pom.xml
E/pom.xml
pom.xml (parent pom file that includes A,B,C,D,E modules)
Похоже на ваше
mvn reactor:make -Dmake.folders=C,D,E -Dgoals=package -Dmaven.test.skip=True
Хотя я не уверен, что мой подход имеет значение именно то, что делает плагин реактора, но я нашел следующий подход, работающий достаточно хорошо для меня
mvn -pl=C,D,E -DskipTests=true package
Вы пытались включить опцию -Dmaven.test.skip = true. (Обратите внимание на случай) в аргумент вашей строки командной строки, вы работаете? Как и Java, Maven чувствителен к регистру. Но вообще, вы можете бросить = истинную часть, и это также должно вызывать пропущенные тесты.