代码之家  ›  专栏  ›  技术社区  ›  Dima

如何从并行构建中排除一些正在构建的项目?

  •  2
  • Dima  · 技术社区  · 7 年前

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

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   glytching    7 年前

    几个选项:

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

    2. 将构建拆分为可以安全并行运行的模块子组,然后运行 mvn 使用以下命令为每个子组执行命令: -pl 指示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. -PFoo .

    2. (可能)重做测试,使它们可以安全地并行。你可能已经考虑过这个了,所以我在这里只是为了补充。

    注:选项 2 3 实际上是一样的,它们只是在父项目中定义逻辑“可并行”子组的两种不同方式。