Maven и Exec: разветвление процесса?
Я пытаюсь использовать Maven для запуска приложения перед запуском некоторых интеграционных тестов. Я на винде. Моя конфигурация плагина Maven выглядит следующим образом:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>start-my-application</id>
<phase>pre-integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>start_application.bat</executable>
<workingDirectory>./path/to/application</workingDirectory>
</configuration>
</execution>
<executions>
<plugin>
и мой командный файл выглядит так:
start myApplication.exe
При запуске в изолированном режиме командный файл создает отдельное окно для запуска приложения и немедленно возвращает управление.
Однако при запуске из Maven сборка ожидает завершения процесса в отдельном окне, прежде чем продолжить. Это несколько побеждает точку этапа тестирования интеграции...
Любые идеи, как я могу начать действительно отдельный процесс в Maven, чтобы позволить сборку продолжать вместе с ней?
2 ответа
Для справки, довольно хакерским решением является использование maven-antrun-plugin
вызвать Ant, который способен порождать отдельные процессы:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>pre-integration-test</phase>
<configuration>
<target>
<exec executable="cmd"
dir="./path/to/application"
spawn="true">
<arg value="/c"/>
<arg value="start_application.bat"/>
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
Попробуй это:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>start-my-application</id>
<phase>pre-integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>call</executable>
<arguments>
<argument>start_application.bat</argument>
</arguments>
<workingDirectory>./path/to/application</workingDirectory>
</configuration>
</execution>
</executions>
</plugin>