Maven: как заказать многократное выполнение цели на одной и той же фазе в определенном порядке - PullRequest
0 голосов
/ 04 июня 2018

Я хочу, чтобы моя фаза «предварительного тестирования интеграции» заключалась в следующем выполнении целей в указанном порядке.

ФАЗА: предварительный тест интеграции

  • получить подпружиненный загрузочный jar (maven-dependency-plugin: copy)
  • get-a-port (build-helper-maven-plugin: reserve-network-port)
  • display-port (maven-antrun-plugin: run # 1)
  • start-server (exec-maven-plugin)
  • ожидание запуска (maven-antrun-plugin: run #2)

Есть ли способ сделать это с помощью Maven 3?

Проблема, с которой я сталкиваюсь, заключается в том, что "maven-antrun-plugin: run" 1& 2 всегда будет запускаться один за другим, потому что они определены в одном и том же элементе плагина:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <id>display-port</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target>
                                <echo>Displaying value of 'tomcat.http.port' property</echo>
                                <echo>[tomcat.http.port] ${tomcat.http.port}</echo>
                            </target>
                        </configuration>
                    </execution>
                    <execution>
                        <id>wait-for-startup</id>
                        <phase>pre-integration-test</phase>
                        <configuration>
                            <target>
                                <sleep seconds="10" />
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

Прямо сейчас, единственный способ сделать это - продублировать "maven-antrun-plugin: "элемент плагина в файле pom.Но я получаю предупреждение

'build.plugins.plugin.(groupId:artifactId)' must be unique but found duplicate declaration

. В рамках этого вопроса я не ищу обходного пути, такого как изменение плагина для «display-port» или «ожидание запуска»", или изменение фазы целей.

Я просто хочу понять, возможно ли то, что я пытаюсь сделать, или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...