У меня есть зависимость, необходимая для компиляции и выполнения, но я хочу исключить ее при выполнении тестов. Это возможно? Может быть, настроив профиль? Но как отключить его только для фазы test
жизненного цикла?
Исключить зависимость maven для тестов
Ответы (1)
Вы можете (пере)настроить путь к классам на этапе тестирования благодаря плагин maven surefire. Вы можете добавить элементы classpath или исключить зависимости.
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.2</version>
<configuration>
<additionalClasspathElements>
<additionalClasspathElement>path/to/additional/resources</additionalClasspathElement>
<additionalClasspathElement>path/to/additional/jar</additionalClasspathElement>
</additionalClasspathElements>
<classpathDependencyExcludes>
<classpathDependencyExclude>org.apache.commons:commons-email</classpathDependencyExclude>
</classpathDependencyExcludes>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
Как отметил @jFrenetic, вы можете сделать то же самое с maven-failsafe-plugin.
person
gontard
schedule
22.08.2012
Спасибо! Попробую позже.
- person jFrenetic; 22.08.2012
Это на самом деле очень хорошая душа! Учитывая, что модульные и интеграционные тесты выполняются разными плагинами (
surefire
и failsafe
), очень удобно управлять classpath, используя конфигурацию плагина.
- person jFrenetic; 31.08.2012
Берегись. Это не очень хорошо работает с IntelJ Idea Test Runner. Похоже, что конфигурация
maven-surefire-plugin
Exclude classpathDependencyExclude
игнорируется. Это означает, что единственным обходным решением для IntelJ Idea является использование терминала для запуска теста или окна инструментов Maven Project. См. открытый тикет . Тем не менее, это работает с Eclipse.
- person DaddyMoe; 16.01.2018
Теперь это работает в 2019.3 Intellij. См. youtrack.jetbrains.com/issue/IDEA-122783 .
- person tuk; 14.09.2019
test scope
). - person jFrenetic   schedule 21.08.2012profiles
в своем вопросе. Я просто не могу понять, как активировать/деактивировать профиль для какой-то конкретной фазы за один прогон. Боюсь, это вряд ли возможно. - person jFrenetic   schedule 22.08.2012