5

Maven: Упаковка / Установка без тестов (пропустить тесты)

12

Я пытаюсь упаковать свой проект, но тесты автоматически запускаются перед упаковкой. Эти тесты вставляют данные в базу данных. Это не то, что мне нужно. Я хочу избежать запуска тестов во время упаковки приложения. Кто-нибудь знает, как упаковать проект без запуска тестов?

5 ответ(ов)

9

Чтобы запустить Maven с пропуском тестов, используйте следующую команду:

mvn package -Dmaven.test.skip

Эта команда выполняет процесс сборки вашего проекта, создавая пакет, но не запускает тесты, что может сократить время сборки, если тесты не являются необходимыми в данный момент. Обратите внимание, что параметр -Dmaven.test.skip отключает выполнение тестов, однако код тестов все равно будет компилироваться. Если вам нужно полностью пропустить компиляцию тестов, вы можете использовать параметр -Dmaven.test.skip=true.

3

Чтобы скомпилировать код тестов без их выполнения, вы можете использовать следующую команду в Maven:

mvn package -DskipTests

Эта команда создаст ваш проект и пропустит выполнение тестов.

0

Если вы пытаетесь выполнить это в Windows Powershell, вы получите следующую ошибку:

[ERROR] Unknown lifecycle phase ".test.skip=true". You must specify a valid lifecycle phase or a goal in the format...

Причина в том, что в Powershell символ "-" имеет специальное значение и вызывает проблемы с Maven.

Решение заключается в том, чтобы добавить перед ним обратную кавычку (`), как показано ниже:

mvn `-Dmaven.test.skip=true install

Ссылка: http://kuniganotas.wordpress.com/2011/08/12/invalid-task-test-skiptrue-you-must-specify-a-valid-lifecycle-phase/

0

Вы можете добавить эту конфигурацию плагина в ваш pom.xml, если не хотите устанавливать аргументы командной строки:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <skipTests>true</skipTests>
  </configuration>
</plugin>

Таким образом, при сборке проекта тесты будут пропущены без необходимости указывать параметры в командной строке.

0

Обратите внимание, что использование параметра -Dmaven.test.skip предотвращает создание артефакта test-jar в процессе сборки Maven.

Если вы хотите пропустить тесты, но при этом создать артефакты, как в обычной сборке, используйте:

-Dmaven.test.skip.exec
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь