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

时间:2014-09-08 08:22:29

标签: java maven

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或settings.xml中指定此参数?重复这个选项可能很烦人。

3 个答案:

答案 0 :(得分:2)

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

alias mvnp='mvn -T 4'

现在从终端运行maven使用mvnp

mvnp clean install

答案 1 :(得分:2)

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

对于Windows:

  1. 打开环境变量窗口 - 通常是计算机 - >属性 - >高级系统设置 - >环境变量(在“高级”选项卡中)
  2. 使用所需的值添加属性 MAVEN_CMD_LINE_OPTS 。在我的情况下-T 3,因为我希望Maven使用3个线程并行构建。
  3. 编辑 mvn.cmd 文件(对于Windows,Linux的 mvn 文件)。找到实际执行Java命令的部分。通常,这是在定义主类的行之后: org.codehaus.plexus.classworlds.launcher.Launcher
    在Windows中,这一行以: %MAVEN_JAVA_EXE %% JVM_CO ...
  4. 将%MAVEN_CMD_LINE_OPTS%添加到该行的末尾(基于Unix的系统为$ MAVEN_CMD_LINE_OPTS)
  5. 当我们在Maven项目上运行 mvn compile 时,您将看到以下行:

    使用线程数为3的MultiThreadedBuilder实现

    这样做的好处是用户可以覆盖'这个价值。因此,如果用户执行 mvn -T4 compile ,则使用4个线程而不是默认值3。

    注意:

    1. 我在Maven 3.3.9上试过这个,但这个概念应该适用于任何Maven 版。
    2. 多线程构建可能会遇到插件问题 特别是自定义插件不是线程安全的。所以要小心使用 考虑在发生问题时禁用此功能作为修复。

答案 2 :(得分:-4)

您可以在MAVEN_OPTS环境变量中指定该选项(请参阅http://maven.apache.org/guides/mini/guide-configuring-maven.html)。完成后,您不必重复此操作。配置环境变量取决于您的系统。但是,这将影响您环境中的所有maven运行。也许你可以启用不同的环境,这样只有你想要并行构建的项目才能在这样的环境中运行。