multithreading - Maven 多线程构建如何工作?

标签 multithreading maven build parallel-processing

我一直在环顾四周,想了解一下使用 时 maven 如何执行多模块项目的构建。 -T选项。在他们的confluence page ,他们注意到

This build-mode analyzes your project's dependency graph and schedules modules that can be built in parallel according to the dependency graph of your project...


所以据我了解,如果我执行 mvn clean install -T 4 我有模块 A、B、C、D、E 和 F 这样
  • A 依赖于 B
  • B 依赖于 C
  • D 依赖于 C

  • C、E 和 F 将同时开始,而 D 和 B 仅在 C 完成后才开始。那是对的吗?
    我的进一步问题是:受抚养人(D 和 B)是否在其 parent (C)是
  • 已完成编译/安装但未必已完成测试,或
  • 包括测试在内的一切都完成了吗?

  • 关于我的设置的信息:这在 Maven 3.3.3 和 Maven 3.1.1 上都发生在我身上。我目前正在使用 Java 1.7.0_79

    最佳答案

    正如您在 graphic they start off are based on their levels 上看到的那样.所以我假设模块 C、E 和 F 将首先启动,一旦所有这些模块(级别 1)完成,下一个级别的模块 B 和 D 将启动,最后是模块 A。

    模块内的执行基于生命周期,这意味着模块将运行生命周期的所有阶段,例如,如果您执行 mvn -T 4 package所有模块将运行所有周期,包括包周期。
    如果你运行 mvn -T 4 install所有模块都运行所有生命周期步骤(其中包含测试阶段)...

    smart-builder如果您有大量模块,则可以加快速度。

    关于multithreading - Maven 多线程构建如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31143529/

    相关文章:

    ios - Flutter Firebase Analytics应用在启动时崩溃

    c# - 如何造成线程竞争情况

    java - 当我只想并发读取ConsumerRecords时,是否必须同步ConsumerRecords?

    iOS - 另一个线程需要将 reloadData 发送到主线程

    java - 使用 Maven 为 SWT 应用程序构建多平台可执行文件

    java - 许多版本的 JDK : How do I specify which one is used?

    c++ - 使用 volatile bool 变量进行忙等待

    java - 为什么在 undertow 服务器中将端口设置为 80 失败? ( java )

    maven - 检查 Maven 资源中未解析的属性

    java - Ant <jar> 任务 : using excludes parameter