如何将正在构建的某些项目排除在并行构建之外



我正在使用TDD,并且有许多模块进行端到端测试。

其中一些正在同一端口上启动服务器,所以我无法使它们并行。

如何标记某些工件不并行运行?

几个选项:

  1. Maven的并行构建功能是"依赖性感知"的,因此如果模块B依赖于模块A,则模块B将始终在模块A之后构建。这将取代并行构建指令。因此,您可以添加一个依赖项来强制进行串行构建。但是,是的,这是人为的,可能会变得尴尬。

  2. 将构建拆分为可以安全并行运行的模块子组,然后使用-pl为每个子组运行mvn命令,以指示Maven构建每个子组。。。

-pl,--projects <arg>                Comma-delimited list of specified
reactor projects to build instead
of all projects. A project can be
specified by [groupId]:artifactId
or by its relative path.
  1. 定义配置文件以创建逻辑子组,这样,如果模块A和模块C属于名为"Foo"的子组,则这些子模块将由-PFoo激活。

  2. (可能)重新进行测试,以便它们可以安全地平行进行。你可能已经考虑过了,所以我把它包括在这里只是为了圆满。

注意:选项23实际上是相同的,它们只是在父项目中定义逻辑"可并行"子组的两种不同方式。

最新更新