我正在使用TDD,并且有许多模块进行端到端测试。
其中一些正在同一端口上启动服务器,所以我无法使它们并行。
如何标记某些工件不并行运行?
几个选项:
-
Maven的并行构建功能是"依赖性感知"的,因此如果模块B依赖于模块A,则模块B将始终在模块A之后构建。这将取代并行构建指令。因此,您可以添加一个依赖项来强制进行串行构建。但是,是的,这是人为的,可能会变得尴尬。
-
将构建拆分为可以安全并行运行的模块子组,然后使用
-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.
-
定义配置文件以创建逻辑子组,这样,如果模块A和模块C属于名为"Foo"的子组,则这些子模块将由
-PFoo
激活。 -
(可能)重新进行测试,以便它们可以安全地平行进行。你可能已经考虑过了,所以我把它包括在这里只是为了圆满。
注意:选项2
和3
实际上是相同的,它们只是在父项目中定义逻辑"可并行"子组的两种不同方式。