#maven-2 #build
#maven-2 #сборка
Вопрос:
В нашей «большой сборке» (более 40 модулей) у нас есть несколько модулей, которые содержат только тесты.
Когда я передаю -DskiptTests в mvn, тесты не выполняются.
Но они компилируются, что занимает до минуты времени сборки.
Как я могу выборочно отключить такие модули, когда установлена опция skipTests?
Ответ №1:
Вам пришлось бы организовать свой корневой pom таким образом, чтобы тестовые модули активировались через профиль, и вместо того, чтобы использовать -Dmaven.test.skip
для включения use -P!testProfile
, деактивировать их и, следовательно, пропускать.
Другая мысль заключается в том, что вы могли бы просто сделать:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<skip>${maven.test.skip}</skip>
</configuration>
</plugin>
</plugins>
На самом деле я этого не пробовал … теоретически это должно сработать. Кажется, я помню, что <skip>
конфигурация доступна для всех плагинов.
Ответ №2:
Просто чтобы прояснить точку зрения Гарета Дэвида:
- При запуске
mvn ... -DskipTests
пропускается только выполнение тестов. Это то же самое поведение, если вы запускаетеmvn ... -Dtest=notest
- Когда вы запускаете
mvn ... -Dmaven.skip.test=true
, как выполнение теста, так и компиляция пропускаются.
Итак, второй команды достаточно, без каких-либо изменений вашего pom.xml
файла.
(исходный код)
Комментарии:
1. @Bastl Какую версию Maven вы используете?