首页 » Maven实战 » Maven实战全文在线阅读

《Maven实战》8.6.2 裁剪反应堆

关灯直达底部

一般来说,用户会选择构建整个项目或者选择构建单个模块,但有些时候,用户会想要仅仅构建完整反应堆中的某些个模块。换句话说,用户需要实时地裁剪反应堆。

Maven提供很多的命令行选项支持裁剪反应堆,输入mvn-h可以看到这些选项:

·-am,--also-make同时构建所列模块的依赖模块

·-amd-also-make-dependents同时构建依赖于所列模块的模块

·-pl,--projects<arg>构建指定的模块,模块间用逗号分隔

·-rf-resume-from<arg>从指定的模块回复反应堆

下面还是以账户服务为例(为合并聚合和继承),解释这几个选项的作用。默认情况从account-aggregator执行mvn clean install会得到如下完整的反应堆:

可以使用-pl选项指定构建某几个模块,如运行如下命令:

得到的反应堆为:

使用-am选项可以同时构建所列模块的依赖模块。例如:

由于account-email依赖于account-parent,因此会得到如下反应堆:

使用-amd选项可以同时构建依赖于所列模块的模块。例如:

由于account-email和account-persist都依赖于account-parent,因此会得到如下反应堆:

使用-rf选项可以在完整的反应堆构建顺序基础上指定从哪个模块开始构建。例如:

完整的反应堆构建顺序中,account-email位于第三,它之后只有account-persist,因此会得到如下的裁剪反应堆:

最后,在-pl-am或者-pl-amd的基础上,还能应用-rf参数,以对裁剪后的反应堆再次裁剪。例如:

该命令中的-pl和-amd参数会裁剪出一个account-parent、account-email和account-persist的反应堆,在此基础上,-rf参数指定从account-email参数构建。因此会得到如下的反应堆:

在开发过程中,灵活应用上述4个参数,可以帮助我们跳过无须构建的模块,从而加速构建。在项目庞大、模块特别多的时候,这种效果就会异常明显。