我想使用maven執行以下情形催生:過程執委會,Maven的插件模塊Maven的過程
- 預集成階段:開始使用主類的基於java的應用程序(使用EXEC -maven-插件)
- 整合階段:運行集成測試用例(使用maven-故障保護,插件)
- 整合階段後:正常停止的應用程序(使用EXEC - Maven的插件)
這裏是p om.xml剪斷:
<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>
如果我執行MVN後的集成測試,我的應用程序入門作爲行家進程的子進程,但該應用程序是從執行集成測試阻止Maven的過程進入下一個階段。後來我發現maven exec插件中有一個bug (or missing functionality?),因爲應用程序進程阻塞了maven進程。爲了解決這個問題,我將MyApp.java的調用封裝在shell腳本中,然後附加「/ dev/null 2> &」以產生單獨的後臺進程。這裏是剪斷(這只是剪斷,而不是實際的)從runTest.sh:
java - DMY_APP_HOME =$2 com.foo.MyApp > /dev/null 2>&1 &
雖然這解決了我的問題,有沒有其他的辦法做到這一點?我是否缺少exec-maven-plugin的任何參數?
是的,你是對的。 Windows將成爲我的修復程序的問題。 – 2012-03-30 10:05:23