Maven 中的“反应堆”是什么?
-
20-09-2019 - |
题
我一直在阅读有关 Maven Reactor 的内容,并对它的术语用法感到困惑。我读过多模块是一个反应器,您可以操作 Maven 反应器,并且反应器是一个插件。反应堆到底是什么?
解决方案
在反应器是的Maven的,允许它在一组模块的执行目标的部分。作为Maven的1.x的文件中所提及的多模块构建一>(在反应器的概念已经在那里了Maven中1.x中),而模块的工作的分立单元,它们可以利用反应器中以同时建立他们聚集和
在反应器中根据由每个项目在它们各自的项目描述符规定的依赖关系正确的构建顺序,然后将执行一个规定组目标。它可以同时用于建设项目和其他目标,如现场发电。
如所解释的,该反应器是什么使多模块建立可能的:它计算模块间的依赖关系的有向图,导出从该曲线图的构建顺序(这就是为什么循环依赖是不允许的,这是好事反正),然后执行模块上的目标。换句话说,一个 “多模块构建” 是 “反应器的构建” 和 “反应器的构建” 是“多模块构建”。
在的Maven 2.x中,多模块的支持构建已经大大改善与反应器已成为透明的Maven用户。但它仍然存在和罩下被使用。
在2008年9月(即Maven 2的的推出后很长一段时间),一个反应器插件已经建立,以使其能够交互(再次)更紧密地与Maven的反应器。布雷特·波特在反应堆的博客上讲述它:我的新喜欢的Maven插件的。
大多数反应器插件的功能现在本地支持(因为Maven的2.1.0)。请参见 Maven的技巧和窍门:先进反应堆选项。
其他提示
当项目有多个模块时使用 Reactor。
reactor所做的工作有:
- 收集模块详细信息
- 根据依赖关系对顺序进行排序
- 按顺序构建项目
从 Maven 2.1 版本开始,有新的 Maven 命令行选项,允许您操纵 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