我想启动一个同级Maven 3模块,该模块充当我的Maven模块之一中的应用程序服务器,以对系统运行集成测试。
我的Maven项目看起来与此类似:
现在,我想在Maven的集成前测试阶段中启动“模块A”,然后运行模块B中包含的所有集成测试。我设法在模块B中运行了集成测试,但没有找到“光滑”的方式在集成前测试阶段启动模块B。
最佳做法是什么?使用mojo-exec插件?如何配置呢?使用“脏” shell脚本并执行模块A的mvn运行?
编辑
我不想在集成前测试阶段启动应用程序服务器,而是想运行一个Maven模块(它本身是由mojo-exec-plugin启动的)。运行意味着启动一个打包的(有效的)模块的Main类!
最佳答案
尝试使用绑定到安装阶段的maven-exec-plugin的java目标:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>start-app</id>
<phase>install</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.example.Main</mainClass>
<arguments>
<argument>argument1</argument>
...
</arguments>
<systemProperties>
<systemProperty>
<key>myproperty</key>
<value>myvalue</value>
</systemProperty>
...
</systemProperties>
</configuration>
</plugin>