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