Maven: Упаковка / Установка без тестов (пропустить тесты)
Я пытаюсь упаковать свой проект, но тесты автоматически запускаются перед упаковкой. Эти тесты вставляют данные в базу данных. Это не то, что мне нужно. Я хочу избежать запуска тестов во время упаковки приложения. Кто-нибудь знает, как упаковать проект без запуска тестов?
5 ответ(ов)
Чтобы запустить Maven с пропуском тестов, используйте следующую команду:
mvn package -Dmaven.test.skip
Эта команда выполняет процесс сборки вашего проекта, создавая пакет, но не запускает тесты, что может сократить время сборки, если тесты не являются необходимыми в данный момент. Обратите внимание, что параметр -Dmaven.test.skip
отключает выполнение тестов, однако код тестов все равно будет компилироваться. Если вам нужно полностью пропустить компиляцию тестов, вы можете использовать параметр -Dmaven.test.skip=true
.
Чтобы скомпилировать код тестов без их выполнения, вы можете использовать следующую команду в Maven:
mvn package -DskipTests
Эта команда создаст ваш проект и пропустит выполнение тестов.
Если вы пытаетесь выполнить это в 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
Вы можете добавить эту конфигурацию плагина в ваш pom.xml
, если не хотите устанавливать аргументы командной строки:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
Таким образом, при сборке проекта тесты будут пропущены без необходимости указывать параметры в командной строке.
Обратите внимание, что использование параметра -Dmaven.test.skip
предотвращает создание артефакта test-jar в процессе сборки Maven.
Если вы хотите пропустить тесты, но при этом создать артефакты, как в обычной сборке, используйте:
-Dmaven.test.skip.exec
Как добавить локальные JAR-файлы в Maven-проект?
Как указать Maven использовать последнюю версию зависимости?
IntelliJ сообщает "Невозможно разрешить символ", но код все равно компилируется
Необходимый компилятор в данной среде отсутствует. Возможно, вы используете JRE вместо JDK?
Запуск одного тестового метода с помощью Maven