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

时间:2017-10-09 07:31:17

标签: maven concurrency

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

其中一些是在同一个端口上启动服务器,所以我不能让它们并行。

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

1 个答案:

答案 0 :(得分:1)

一些选择:

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

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

  3. -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属于名为的子组,例如&#34; Foo&#34;然后这些子模块将由-PFoo激活。

    2. (可能)重新设计测试,以便可以安全地并行化。你可能已经考虑过这个了,所以我只是把它包含在这里以便完成。

    3. 注意:选项23实际上是相同的,它们只是两种不同的方式来定义逻辑“可并行”&#39;您父项目中的子组。

相关问题