什么是「;反应堆;在Maven?

什么是「;反应堆;在Maven?,maven,maven-2,maven-reactor,Maven,Maven 2,Maven Reactor,我一直在读关于Maven反应堆的书,对它的术语用法感到困惑。我读过多模块是一个反应器,你可以操纵maven反应器,反应器是一个插件。什么是反应器?反应器是Maven的一部分,允许它在一组模块上执行目标。正如Maven 1.x中提到的(Maven 1.x中已经有了反应堆概念),虽然模块是离散的工作单元,但可以使用反应堆将它们聚集在一起,以同时构建它们,并且: 反应器根据每个项目在各自的项目描述符中声明的依赖关系确定正确的构建顺序,然后执行一组声明的目标。它可以用于构建项目和其他目标,例如站点生成

我一直在读关于Maven反应堆的书,对它的术语用法感到困惑。我读过多模块是一个反应器,你可以操纵maven反应器,反应器是一个插件。什么是反应器?

反应器是Maven的一部分,允许它在一组模块上执行目标。正如Maven 1.x中提到的(Maven 1.x中已经有了反应堆概念),虽然模块是离散的工作单元,但可以使用反应堆将它们聚集在一起,以同时构建它们,并且:

反应器根据每个项目在各自的项目描述符中声明的依赖关系确定正确的构建顺序,然后执行一组声明的目标。它可以用于构建项目和其他目标,例如站点生成

如前所述,reactor使多模块构建成为可能:它计算模块间依赖关系的有向图,从该图中导出构建顺序(这就是为什么循环依赖关系不被允许,这是一件好事),然后在模块上执行目标。换句话说,“多模块构建”是“反应堆构建”,而“反应堆构建”是“多模块构建”

在Maven 2.x中,对多模块构建的支持得到了极大的改进,并且反应堆对Maven用户变得透明。但它仍然在那里,在引擎盖下使用

2008年9月(即Maven 2推出后的很长一段时间),已经创建了一个新的平台,使其能够(再次)与Maven反应堆进行更密切的互动。布雷特·波特在他的博客中写道


大多数reactor插件特性现在都是本机支持的(自Maven 2.1.0以来)。请参阅。

当项目具有多个模块时,使用Reactor

反应堆所做的工作是:

  • 收集模块详细信息
  • 根据依赖项对顺序进行排序
  • 有序地建设项目
从2.1版本开始,有一些新的命令行选项允许您操作Maven构建多模块项目的方式。这些新的选择是:

-rf, --resume-from
    Resume reactor from specified project
-pl, --projects
    Build specified reactor projects instead of all projects
-am, --also-make
    If project list is specified, also build projects required by the list
-amd, --also-make-dependents
    If project list is specified, also build projects that depend on projects on the list  

为什么maven网站说这个插件“退役了”?因为reactor插件是一个(只)与实际反应堆“对话”的插件。因此,不是反应堆本身已退役,而是与之相关的插件。