Профиль 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>

Обратите внимание, что фаза опущена

Другие вопросы по тегам