Processo gerado pelo exec-maven-plugin bloqueia o processo maven

Estou tentando executar o seguinte cenário usando o maven:

fase de pré-integração: Inicie um aplicativo baseado em Java usando a classe principal (usando o exec-maven-plugin) phase-phase: Execute os casos de teste de integração (usando o maven-failafe-plugiós-integração-fase: Interrompa o aplicativo normalmente (usando exec-maven-plugi

Aqui está o pom.xml snip:

    <plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.2.1</version>
        <executions>
            <execution>
                <id>launch-myApp</id>
                <phase>pre-integration-test</phase>
                <goals>
                    <goal>exec</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <executable>java</executable>
            <arguments>
                <argument>-DMY_APP_HOME=/usr/home/target/local</argument>
                <argument>-Djava.library.path=/usr/home/other/lib</argument>
                <argument>-classpath</argument>
                <classpath/>
                <argument>com.foo.MyApp</argument>
            </arguments>
        </configuration>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>2.12</version>
        <executions>
            <execution>
                <goals>
                    <goal>integration-test</goal>
                    <goal>verify</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <forkMode>always</forkMode>
        </configuration>
    </plugin>
</plugins>

Se eu executar o mvn pós-integração-teste, meu aplicativo está começando como um processo filho do processo maven, mas o processo de aplicação está impedindo o processo maven de executar os testes de integração que vêm na próxima fase. Mais tarde, descobri que existe um bug (ou falta de funcionalidade?) no plugin maven exec, pelo qual o processo do aplicativo bloqueia o processo maven. Para resolver esse problema, encapsulei a invocação do MyApp.java em um script de shell e, em seguida, anexei "/ dev / null 2> & 1 &" para gerar um processo em segundo plano separado. Aqui está o snip (este é apenas um snip e não o atual) de runTest.sh

java - DMY_APP_HOME =$2 com.foo.MyApp > /dev/null 2>&1 &

Embora isso resolva meu problema, existe alguma outra maneira de fazer isso? Estou faltando algum argumento para o exec-maven-plugin?

questionAnswers(8)

yourAnswerToTheQuestion