当前位置: 首页 > 面试题库 >

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

宇文勇
2023-03-14
问题内容

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

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

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

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

有什么建议吗?


问题答案:

当然,可以使用配置文件来完成。您可以在父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



 类似资料:
  • 我有一个构建项目,在其中我实现了Cucumber BDD,并编写了功能文件和测试类。现在,我想要的是在构建过程中

  • 考虑以下Gradle项目结构: 根在哪里构建。gradle的子项目配置如下: 现在,当我在根项目上调用时,它会自动配置两个子项目,然后构建它们——一切都很好。 我也知道我可以用各种方法跳过一个特定的任务(,等),但是当我使用上的任何一个时,Gradle仍然运行所有依赖的任务(,,等),直到最后击中,然后跳过。 我的问题是,有没有办法让Gradle在配置阶段结束后立即停止并转到下一个子项目? 编辑:

  • 我在一个项目中使用了,该项目是用文件作为影子JAR构建的(即,这些文件包含在JAR中,而不仅仅是一个依赖项。 问题是,2.10.0现在已经存在已知的安全问题,但没有更新版本的spring库带有补丁的jackson文件。所以,我需要做的是使用现有的spring图书馆,但更新的jackson图书馆。如果它是一个正常的依赖关系,这将是足够容易的,但显然文件不能从spring库中删除。 因此,有什么方法可

  • 请注意:“我编辑了这个问题” 我正在观察一个非常奇怪的情况。我在Jenkins中配置了两个具有相同配置的作业,但其中一个是连续构建,另一个是夜间构建[poll scm configured@middign]使用Sonarqube配置生成报告。 注意:我使用的是maven 3.3.1版本和SonarQube 5.1

  • 警告 build 命令已被弃用。 请使用第三方构建工具(如webpack或grunt),或参考示例 Truffle Boxes 。 In order to provide tight integration with Truffle for those that desire it, Truffle allows you to specify a custom build pipeline mea