Я хочу, чтобы моя фаза «предварительного тестирования интеграции» заключалась в следующем выполнении целей в указанном порядке.
ФАЗА: предварительный тест интеграции
- получить подпружиненный загрузочный 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» или «ожидание запуска»", или изменение фазы целей.
Я просто хочу понять, возможно ли то, что я пытаюсь сделать, или нет.