我想启动一个同级Maven 3模块,该模块充当我的Maven模块之一中的应用程序服务器,以对系统运行集成测试。

我的Maven项目看起来与此类似:

  • 父模块
  • 模块
  • 模块B

  • 现在,我想在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>
    

    09-10 12:25
    查看更多