2015-01-06 2 views
3

Возможно ли запустить несколько exec-maven-plugin-исполнений параллельно?Можно ли запускать несколько запусков maven-exec-plugin параллельно?

Мы хотим иметь разные типы баз данных, развернутые для тестирования интеграции DAL, и, хотя это возможно сделать это последовательно, это огромная трата времени.

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>first-dbtype-deployment</id> 
        <goals> 
         <goal>java</goal> 
        </goals> 
        <configuration> 
         <mainClass>com.example.DeployDBTypeOne</mainClass> 
        </configuration> 
       </execution> 
       <execution> 
        <id>second-dbtype-deployment</id> 
        <goals> 
         <goal>java</goal> 
        </goals> 
        <configuration> 
         <mainClass>com.example.DeployDBTypeTwo</mainClass> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </build> 

Соответствующая конфигурация для фактического развертывания, конечно, сложнее, но я думаю, что это не имеет значения для конкретного вопроса на карту.

+0

Какую версию Maven вы используете? что ты уже испробовал? Вы пытались запустить 'mvn -T 2.0 ...'? – khmarbaise

+1

Это для запуска/создания нескольких модулей/проектов параллельно. Я не ищу этого. Мне нужно запустить несколько (java) исполняемых файлов в одном модуле/проекте и в той же фазе параллельно. – mac

ответ

0

Вы можете использовать shellscript, который запускает программу Java на фоне. Это shellscript может выглядеть следующим образом:

#!/bin/bash 
echo Starting dbtype-deployment $* on the background 
java $* >/dev/null 2>&1 & 

В вашем pom.xml вы можете использовать com.example.DeployDBTypeTwo в качестве аргумента.

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.2.1</version> 
    <executions> 
    <execution> 
     <id>dbtype-deployment-x</id> 
     <phase>integration-test</phase> 
     <goals> 
     <goal>exec</goal> 
     </goals> 
    </execution> 
    </executions> 
    <configuration> 
    <executable>startjava.sh</executable> 
    <workingDirectory>${project.build.directory}/youKnowBest</workingDirectory> 
    <arguments><argument>com.example.DeployDBTypeTwo</argument></arguments> 
    </configuration> 
</plugin>