确定 Maven 构建期间的 CPU 核心数

Tho*_*utt 6 maven maven-failsafe-plugin

我目前正在使用 Maven Failsafe 插件来分叉执行测试(在单独的 JVM 中并行运行多个测试)。

我根据机器的核心数量手动设置forkCount变量,但我希望 Maven 自动确定该变量,这样我最终可以得到如下结果:

<forkCount>${system.numCores}</forkCount>
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Eld*_*sis 2

您可以在命令行上解析之前的数字。

Linux: nproc
Mac OS: sysctl -n hw.ncpu
Windows:wmic cpu get NumberOfCores, NumberOfLogicalProcessors/Format:List或使用环境变量NUMBER_OF_PROCESSORS(与 一起使用${env.NUMBER_OF_PROCESSORS}

注意 - 对于 Windows,您需要调整输出并获取数字。

然后,将数字作为参数传递给maven:-Dsystem.numCores=$NUM或者
-Dsystem.numCores=%NUM%

编辑:您还可以生成带有属性(maven exec 插件)的文件,然后使用 maven 属性插件读取它。全部在同一个构建过程中的不同阶段完成

我希望这有帮助。