Профиль maven, настроенный для фазы интеграции, выполняется в течение жизненного цикла сборки?
Вот сокращенный фрагмент pom.xml
из моего проекта
<profiles>
<profile>
<id>run-tests</id>
<build>
<plugins>
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.2</version>
<executions>
<execution>
<phase>pre-integration-test</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
......
</includes>
<replacements>
<replacement>
.......
</replacement>
</replacements>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.18.1</version>
<configuration>
......
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<phase>integration-test</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
У меня есть два вопроса:
1) когда я выполню mvn clean package -Prun-tests
, что просходит? Я ожидал, что ни одна из этих целей плагинов не будет выполнена здесь, потому что они связаны с integration-test
фаза. Но я вижу, что эти цели выполнены, почему?
2) что значит иметь две цели в execution
блок значит? пожалуйста, смотрите выше в failsafe-plugin
Спасибо
1 ответ
Частичный ответ:
1) Ни за что. Если у вас также не настроены эти плагины в главном разделе сборки для запуска поэтапно до пакета.
Как вы определили, что плагины работали? У вас есть что-то вроде следующего в выводе maven?
[INFO] --- maven-failsafe-plugin: 2.18.1: интеграция-тест (по умолчанию)
[INFO] --- maven-failsafe-plugin: 2.18.1: проверить (по умолчанию)
2) Это означает, что две цели (mojos) будут выполнены на этапе интеграционных испытаний. Сначала цель интеграционного теста, за которой сразу же следует цель проверки.
Комментарий: цель интеграционного теста по умолчанию связана с фазой интеграционного теста, тогда как цель проверки связана с фазой проверки. Таким образом, вы можете настроить отказоустойчивый плагин следующим образом:
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
Обратите внимание, что фаза опущена