小编典典

在 Maven 构建期间跳过子模块

all

我们需要能够在某些环境中跳过子模块。

有问题的模块包含集成测试,需要半小时才能运行。因此,我们希望在 CI 服务器上构建时包含它,但是当开发人员在本地构建(并运行测试)时,我们希望跳过该模块。

有没有办法通过配置文件设置来做到这一点?我做了一些谷歌搜索并查看了这里的其他问题/答案,但没有找到好的解决方案。

我想一个选择是pom.xml完全从父模块中删除该子模块,然后在我们的 CI 服务器上添加另一个项目来构建该模块。

建议?


阅读 186

收藏
2022-07-18

共1个答案

小编典典

当然,这可以使用配置文件来完成。您可以在父 pom.xml 中执行以下操作。

  ...
   <modules>
      <module>module1</module>
      <module>module2</module>  
      ...
  </modules>
  ...
  <profiles>
     <profile>
       <id>ci</id>
          <modules>
            <module>module1</module>
            <module>module2</module>
            ...
            <module>module-integration-test</module>
          </modules> 
      </profile>
  </profiles>
 ...

在您的 CI 中,您将使用ci配置文件运行 maven,即mvn -P ci clean install

2022-07-18