Процесс, порожденный exec-maven-plugin, блокирует процесс maven

Я пытаюсь выполнить следующий сценарий с помощью maven:

  1. фаза предварительной интеграции: запустить приложение на основе Java с использованием основного класса (используя exec-maven-plugin)
  2. Integration-Phase: Запустите интеграционные тестовые примеры (используя maven-failsafe-plugin)
  3. post-integration-phase: Остановите приложение корректно (используя exec-maven-plugin)

Вот 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?

17
задан Arnab Biswas 30 March 2012 в 05:25
поделиться