从Maven 2.1发行版开始,提供了新的Maven命令行选项,使您可以操纵Maven构建多模块项目的方式。这些新选项是:

-rf,--resume-from

从指定项目恢复反应堆

-pl,-项目

建立指定的反应堆项目而不是所有项目

-am,--also-make

如果指定了项目列表,则还要构建列表所需的项目

-amd,-also-make-depends

如果指定了项目列表,则还要构建依赖于列表中项目的项目

示例多模块项目

该项目近似于一个实际的企业项目的结构:sample-model项目包含在整个系统中使用的一组基础模型对象,sample-util项目将包含实用程序代码,sample-persist项目将包含处理交易的逻辑通过将对象持久保存到数据库中,其他项目将全部组合在一起,以产生各种GUI和基于Web的界面,这些界面构成了非常复杂的系统。下图捕获了这些示例模块之间的依赖性。

如果进入sample-parent /项目目录并运行mvn clean,您将看到Maven Reactor读取所有项目依赖项,并为这些项目提出以下构建顺序,如下所示:

[INFO]反应堆的建立顺序:
[INFO]样本父母
[INFO]样本模型
[INFO]样本保持
[INFO]样本服务
[INFO] sample-util
[INFO]样本安全性
[INFO] sample-admin-webapp
[INFO] sample-webapp
[INFO]样品架
[INFO]样本客户端连接器
[INFO] sample-gui
[INFO] sample-admin-gui

恢复构建

如果要告诉Maven Reactor从特定项目恢复构建,则-rf或--resume-from选项可以派上用场。如果您正在使用大型多模块项目,并且想要在Reactor中的特定项目上重新开始构建,而不在构建顺序中遍历该项目之前的所有项目,那么这将很有用。

$ mvn-从示例客户端连接器安装恢复
[INFO]正在扫描项目...
[INFO]反应堆的建立顺序:
[INFO]样本客户端连接器
[INFO] sample-gui
[INFO] sample-admin-gui
...

指定项目子集

-pl或--projects选项允许您从多模块项目中选择项目列表。如果您正在处理一组特定的项目,并且不想在开发周期中等待完整的多模块项目构建,则此选项很有用。如果仅希望Maven构建sample-rest和sample-client-connector项目,则可以使用sample-parent /目录中的以下语法:

$ mvn --projects sample-client-connector,sample-rest install
[INFO]正在扫描项目...
[INFO]反应堆的建立顺序:
[INFO]样品架
[INFO]样本客户端连接器

制作项目子集

如果要运行较大版本的一部分,则可以将-pl或--projects选项与-am或--also-make选项一起使用。当使用-am选项指定一个项目时,Maven将(直接或间接)构建指定项目所依赖的所有项目。Maven将检查项目列表,并遍历依赖树,找到它需要构建的所有项目。

$ mvn --projects示例服务--also-make install
[INFO]正在扫描项目...
[INFO]反应堆的建立顺序:
[INFO]样本父母
[INFO]样本模型
[INFO]样本保持
[INFO]样本服务

进行相关项目

尽管-am命令在多模块构建中生成特定项目所需的所有项目,但-amd或--also-make-dependents选项将Maven配置为构建一个项目以及任何依赖于该项目的项目。当使用--also-make-depends时,Maven将检查反应堆中的所有项目,以找到依赖于特定项目的项目。它将自动构建那些项目,而没有其他任何事情。

$ mvn --projects示例服务--also-make-dependents install
[INFO]正在扫描项目...
[INFO]反应堆的建立顺序:
[INFO]样本服务
[INFO] sample-admin-webapp
[INFO] sample-webapp
[INFO]样品架

恢复“ make”构建

将--project,-also-make和--resume-from组合在一起,可以使您进一步优化构建。

 mvn --projects sample-webapp --also-make \--resume-from示例服务安装
[INFO]正在扫描项目...
[INFO]反应堆的建立顺序:
[INFO]样本服务
[INFO] sample-util
[INFO]样本安全性
[INFO] sample-webapp

在此示例中,从样本服务恢复构建,该服务省略了构建中的样本持久性和样本模型项目。如果您专注于单个组件,并且需要加快构建时间,那么一起使用这些高级反应堆选项是跳过大型多模块项目构建中某些部分的好方法。--resume-from参数也可用于--also-make-depends。

Maven技巧和窍门:高级Reactor选项相关推荐

  1. Visual Studio 2005 IDE 技巧和窍门

    发布日期: 2007-02-26 | 更新日期: 2007-02-26 James Lau Microsoft 项目经理 适用于: Microsoft Visual Studio 2005 摘要:Vi ...

  2. ssms win10_10个SSMS技巧和窍门可提高您的生产力

    ssms win10 I have been using SSMS for a long time now, and over the period of time I have realized t ...

  3. 多个使用idm下载器的技巧和窍门.

    如果使用了本文提供的技巧.你无疑可以将idm下载器的下载速度从一般情况的5倍提高到惊人的8倍! 1. IDM是当今互联网上最好的下载器. 2. 就功能而言,它比任何下载管理器都要好. 3. 下面,我们 ...

  4. 成为指标的“绝地武士”:tableau创建指标的 10 个技巧和窍门

    在 Tableau 2020.2 中,我们引入了指标功能来帮助您在同一个地方以一致的格式跟踪最重要的 KPI .今天,我们将分享一些从现有仪表盘和新仪表盘创建指标的技巧,赶快学起来吧~  技巧 1:在 ...

  5. vue双击事件_我总结了12个Vue.js开发技巧和窍门

    我真的很喜欢使用Vue.js,每次使用框架时,我都会喜欢深入研究其功能和特性.通过这篇文章,我向你介绍了12个很酷的提示和技巧,你可能尚未意识到这些技巧和窍门,以帮助你成为更好的Vue开发人员. 更漂 ...

  6. selenium编写脚本_Selenium脚本编写技巧和窍门

    selenium编写脚本 如果您刚刚开始学习Selenium,则以下技巧和窍门将成为您的救星. 这些技巧和窍门具有您可能会忘记的所有基本知识,将帮助您记住所有这些. 您只需浏览一次,几秒钟后您便会了解 ...

  7. Selenium脚本编写技巧和窍门

    如果您刚刚开始学习硒,则以下技巧和窍门将成为您的救星. 这些技巧和窍门具有您可能会忘记的所有基本知识,将帮助您记住所有这些. 您只需浏览一下它们,几秒钟后您就会了解所有内容. 让我们一一看一下所有的技 ...

  8. Jupyter Notebook的15个技巧和窍门,可简化您的编码体验

    Jupyter Notebook is a browser bases REPL (read eval print loop) built on IPython and other open-sour ...

  9. 2020年的12个Vue.js开发技巧和窍门

    微信搜索[前端全栈开发者]关注这个脱发.摆摊.卖货.持续学习的程序员的公众号,第一时间阅读最新文章,会优先两天发表新文章.关注即可大礼包,送某网精品视频课程网盘资料,准能为你节省不少钱! 我真的很喜欢 ...

最新文章

  1. 吴恩达机器学习笔记 —— 3 线性回归回顾
  2. kali2.0部署docker
  3. ITK:创建一个图像区域
  4. notepad json格式化插件_Prettier + ESLint VSCode 插件配置指南
  5. 在linux环境下安装wiringpi库,wiringPi库的pwm配置及使用说明
  6. python和noip的区别_【noi与noip的区别】
  7. lintcode 中等题:Divide Two Integers 两个数的除法
  8. 迎春舞会之三人组舞 vijos1061 动态规划
  9. [UIImage resizableImageWithCapInsets:]使用注意
  10. 超级详细的Junit单元测试教程
  11. 软件工程的23种设计模式
  12. 硬盘数据恢复——误删除卷数据恢复
  13. 2020年4月github上最热门项目-python
  14. 探索硅谷奇迹的本质--周末荐书之《硅谷之谜》
  15. 逆向加固的apk详细教程
  16. 实现 Trie (前缀树)
  17. 培训三天敏捷我懂了这些
  18. 空洞卷积/扩张卷积(Dilated convolution)-笔记
  19. Java开发就业形势和面试技巧
  20. C# Windows服务程序编写

热门文章

  1. js调用php会提前加载,为什么js代码里调用了php变量运行就明显变慢了
  2. Linux 中如何启用和禁用网卡?
  3. python 字符串 类型互相转换 str bytes 字符串连接
  4. 单击选定单元格后输入新内容_2015年计算机一级msoffice考前简答题练习
  5. 循环拼接String字符串去掉最后一个字符的方法
  6. 蛋糕matlab,用matlab绘制生日蛋糕
  7. svn 覆盖更新_使用SVN钩子强制提交日志和限制提交文件类型
  8. java迷宫实训报告_Java综合实训报告-迷宫.doc
  9. java集群_「Java知识」MyCat的图文视频讲解,MyCat分片集群分表分库策略
  10. python的pip_Python3中安装pip3