Есть ли простой способ не создавать тестовые классы?
mvn clean install -Dmaven.test.skip=true
Вальтер
Есть ли простой способ не создавать тестовые классы?
mvn clean install -Dmaven.test.skip=true
Вальтер
В соответствии с документацией на плагине Maven Surefire, -Dmaven.test.skip
должен пропустить как компиляцию, так и выполнение тестов. Напротив, -DskipTests
просто пропускает выполнение теста: тесты все еще компилируются.
Просто, чтобы быть явным образом:
skipTests
будет компилировать все в <testSourceDirectory>
, но не выполнит их.
maven.test.skip
будет НЕ компилировать любые тесты, но WILL выполнит любые скомпилированные тесты, которые пробились в <testOutputDirectory>
.
Таким образом, поведение вышеприведенного 2 противоположно. Просто хотел указать, что maven.test.skip
не пропускает компиляцию и выполнение, если тестовые файлы распакованы/скопированы/etc. в <testOutputDirectory>
.
Кроме того, в зависимости от того, какая версия Maven вы используете, также maven.test.skip.exec=true
, который дополнительно пропускает тестовое выполнение, похожее на skipTests.
Запустите фазу, которая не включает test-compile
, например compile
.
mvn clean compile
Я не эксперт в maven, но то, что я использую в своем текущем проекте, это:
mvn clean install -DskipTests=true
В зависимости от вашего варианта использования:
mvn compile -DskipTests=true
может работать и для вас.
Кажется, что maven-compiler-plugin не предоставляет параметр для пропуска компиляции тестовых источников. Я нашел обход в другом question, который фактически переопределяет выполнение плагина, добавив следующий фрагмент в ваш pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-testCompile</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
Кажется, что это работает, но определенно не отключает фазу, но отключает действия по умолчанию, которые плагин определяет на определенной фазе.