Maven 如何从并行构建中排除一些项目构建?
我正在使用TDD,并且有许多具有端到端测试的模块 其中一些正在同一端口上启动服务器,因此我无法使它们并行 如何将某些工件标记为不并行运行?有几个选项:Maven 如何从并行构建中排除一些项目构建?,maven,concurrency,Maven,Concurrency,我正在使用TDD,并且有许多具有端到端测试的模块 其中一些正在同一端口上启动服务器,因此我无法使它们并行 如何将某些工件标记为不并行运行?有几个选项: Maven的并行构建功能是“依赖感知”的,因此如果模块B依赖于模块A,那么模块B将始终在模块A之后构建。这将取代并行构建指令。因此,您可以添加一个依赖项来强制串行构建。但是,是的,这是人为的,可能会很尴尬 将构建拆分为可以安全并行运行的模块子组,然后使用-pl为每个子组运行mvn命令,以指示Maven构建每个子组 -pl,--projects以逗
-pl
为每个子组运行mvn
命令,以指示Maven构建每个子组-pl,--projects以逗号分隔的指定
改为建造反应堆项目
在所有项目中。项目可以是
由[groupId]指定:artifactId
或者通过它的相对路径。
-PFoo
激活2
和3
实际上是相同的,它们只是在父项目中定义逻辑“可并行”子组的两种不同方式。如下面@glitch所述(cit)“Maven的并行构建功能…如果…那么模块B将始终在模块A之后构建。”这是一个真正的进程所没有的自由度。这意味着Maven在“just”[CONCURRENT]
调度策略下构建(如依赖关系图所允许,将部件移动到[SERIAL]
-构建序列中(同样是“just”[CONCURRENT]
中常见的步骤,但在真正的[PARALLEL]中不常见)
-计划,即使所有Maven的推广人、爱好者和/或失明的怪胎都称之为平行或平行^2)。永远不要将“奇数”称为“偶数”。是的,永远不要
-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.