Maven и Exec: разветвление процесса? - PullRequest
14 голосов
/ 12 января 2011

Я пытаюсь использовать 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 ]

12 голосов
/ 13 января 2011

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

Попробуйте это:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...