Maven:在 pom 中配置并行构建.xml

2022-09-03 03:00:00

Maven 具有执行并行构建的能力:https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3

mvn -T 4 clean install # Builds with 4 threads
mvn -T 1C clean install # 1 thread per cpu core
mvn -T 1.5C clean install # 1.5 thread per cpu core

是否可以在 pom.xml 或设置中指定此参数.xml?重复此选项可能会很烦人。


答案 1

这个解决方案有点黑客,但对我有用。它涉及指定一个新的环境变量,为其分配值 -T3,并将此变量添加到 Maven 启动脚本。

For Windows (Linux in parens):

  1. 打开“环境变量”窗口:计算机 ->属性 ->高级系统设置 ->环境变量
  2. 添加具有所需值的属性MAVEN_CMD_LINE_OPTS。在我的情况下,我希望Maven使用3个线程来并行构建。-T 3
  3. 编辑 mvn.cmd 文件(在 Linux 中:mvn 文件)。找到实际执行Java命令的部分,以%MAVEN_JAVA_EXE%开头的行(在Linux中:通常在定义主类的行之后:org.codehaus.plexus.classworlds.launcher.Launcher)

  4. 将 %MAVEN_CMD_LINE_OPTS% 添加到行尾(在 Linux 中:$MAVEN_CMD_LINE_OPTS)

当您在 Maven 项目上运行 mvn 编译时,您现在将看到以下行:

使用线程计数为 3 的多线程构建器实现

这具有用户能够“覆盖”此值的优点。因此,如果用户执行 mvn -T4 编译,则使用 4 个线程而不是默认的 3 个线程。

注意:

  1. 我在Maven 3.3.9上尝试过这个,但这个概念应该适用于任何Maven版本。
  2. 多线程构建可能会遇到插件(尤其是自定义插件)不线程安全的问题。因此,请谨慎使用,并考虑禁用此功能,以防出现问题。

答案 2

我无法找到在pom.xml或设置中配置它的方法.xml unix系统上有一个很好的解决方案,编辑您的.bashrc并添加别名。

alias mvnp='mvn -T 4'

现在从终端运行专家使用mvnp

mvnp clean install

推荐