Próbuję wykonać następujący scenariusz przy użyciu Maven:Process zrodził blokami Exec-maven-plugin procesu Maven
- pre-integracja-fazowe: Uruchom aplikację Java przy użyciu główne klasy (przy użyciu exec -maven-plugin)
- integracja faza: Uruchom przypadków testowych (integracja za pomocą Maven-failsafe-plugin)
- post-integracja-fazowe: Zatrzymaj aplikację wdzięcznie (za pomocą exec-maven-plugin)
Oto p om.xml ciach:
<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>
Gdybym wykonać mvn post-test integracyjny, mój wniosek jest rozpoczęcie pracy jako procesu potomnego procesu maven, ale proces aplikacja blokuje proces maven z wykonaniem testów integracyjnych który pojawia się w kolejnej fazie. Później odkryłem, że w dodatku maven exec jest bug (or missing functionality?), z powodu którego proces aplikacji blokuje proces maven. Aby rozwiązać ten problem, zamknąłem inwokację MyApp.java w skrypcie powłoki, a następnie dodałem "/ dev/null 2> ", aby utworzyć oddzielny proces w tle. Oto wycinek (jest to tylko wycinek, a nie rzeczywista jeden) z runTest.sh:
java - DMY_APP_HOME =$2 com.foo.MyApp > /dev/null 2>&1 &
Mimo to rozwiązuje mój problem, czy jest jakiś inny sposób to zrobić? Czy brakuje mi argumentu dotyczącego exec-maven-plugin?
Tak, masz rację. Windows będzie problemem z moją poprawką. –