一尘不染

在Maven构建过程中跳过子模块

jenkins

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

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

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

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

有什么建议吗?


阅读 935

收藏
2020-07-25

共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

2020-07-25