Maven и Exec: разветвление процесса?

Я пытаюсь использовать Maven для запуска приложения до запуска некоторых тестов интеграции. Я нахожусь в Windows. Моя конфигурация плагина 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, чтобы позволить продолжению сборки вместе с ним?

Ответы

Ответ 1

Для записи довольно хакерское решение - использовать 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>

Ответ 2

Попробуйте следующее:

<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>