Я пытаюсь выполнить следующий сценарий с помощью maven:
Вот pom.xml snip:
org.codehaus.mojo
exec-maven-plugin
1.2.1
launch-myApp
pre-integration-test
exec
java
-DMY_APP_HOME=/usr/home/target/local
-Djava.library.path=/usr/home/other/lib
-classpath
com.foo.MyApp
org.apache.maven.plugins
maven-failsafe-plugin
2.12
integration-test
verify
always
Если я выполняю mvn post-integration-test, мое приложение запускается как дочерний процесс процесса maven, но процесс приложения блокирует процесс maven от выполнения интеграционных тестов, которые наступают на следующем этапе. . Позже я обнаружил, что в плагине maven exec есть ошибка (или отсутствующая функциональность?), из-за которой процесс приложения блокирует процесс maven. Чтобы решить эту проблему, я инкапсулировал вызов MyApp.java в сценарий оболочки, а затем добавил «/dev/null 2>&1 &», чтобы создать отдельный фоновый процесс. Вот фрагмент (это всего лишь фрагмент, а не настоящий) из runTest.sh:
java - DMY_APP_HOME =$2 com.foo.MyApp > /dev/null 2>&1 &
Хотя это решает мою проблему, есть ли другой способ сделать это? Я пропустил какой-либо аргумент для exec-maven-plugin?