《Maven 实战》读书笔记(八) 反应堆

2024-09-03 17:18

本文主要是介绍《Maven 实战》读书笔记(八) 反应堆,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 反应堆

反应堆这个名字听上去挺专业,其实就是多个模块组成的一个构建结构罢了,而单一模块项目自身就是该项目的反应堆。反应堆包含了各模块之间的依赖关系,从而Maven计算出合理的构建顺序。当然,反应堆计算出来的顺序都不能是一个“闭环”,比如说模块A的构建依赖于模块B,那么就回去构建模块B,但是构建模块B的过程中,经过反应堆分析,模块B的构建依赖于模块A,那么这就形成了一个构件的“闭环”。这样就会报错。到底是“鸡生蛋?还是蛋生鸡?”。

2. 剪裁反应堆

一般来说,开发者会构建整个项目,或者选择单独的模块进行构建。如果一切顺利的话,整体构建挺爽的。但是一旦整体构建发现某个模块构建失败。开发者发现问题,调整好后仅仅想构建这一个模块,这就叫做剪裁反应堆。在聚合项目根目录下执行如下语句

mvn clean install -pl ../MavenAccount-email 


代表仅仅构建聚合项目中的邮件模块,其他模块不动。

如下语句

mvn clean install -pl ../MavenAccount-email,../MavenAccount-persist


就是构建邮件模块、持久层模块。

-am:同时构建所列模块的依赖模块

-amd:同时构建依赖于所列模块的模块

-pl:构建指定模块

-rf:从指定的模块返回一个反应堆对象


mvn clean install -pl ../MavenAccount-email -am


输出如下

    [INFO] ------------------------------------------------------------------------  
[INFO] Reactor Summary:
[INFO]
[INFO] MavenAccount-aggregator ........................... SUCCESS [0.437s]
[INFO] MavenAccount-email ................................ SUCCESS [4.728s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.352s
[INFO] Finished at: Mon Jun 06 11:17:44 CST 2011
[INFO] Final Memory: 10M/25M
[INFO] ------------------------------------------------------------------------


代表先构建聚合模块,因为邮件模块依赖于聚合模块,因为它不仅仅是聚合模块,还是父模块。

mvn clean install -pl ../MavenAccount-email -amd  


构建MavenAccount-email完毕后,构建与MavenAccount-email依赖相关的所有模块

mvn clean install -rf ../MavenAccount-persist  


在原聚合项目的基础上得出的反应堆中构建MavenAccount-persist模块

3. 总结

剪裁反应堆是为了找到问题模块,分析问题后单独构建的,灵活使用反应堆命令可以快速构建大项目。尤其在项目十分庞大的时候,剪裁反应堆,显得十分重要。

这篇关于《Maven 实战》读书笔记(八) 反应堆的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133556

相关文章

Win10安装Maven与环境变量配置过程

《Win10安装Maven与环境变量配置过程》本文介绍Maven的安装与配置方法,涵盖下载、环境变量设置、本地仓库及镜像配置,指导如何在IDEA中正确配置Maven,适用于Java及其他语言项目的构建... 目录Maven 是什么?一、下载二、安装三、配置环境四、验证测试五、配置本地仓库六、配置国内镜像地址

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

Spring Boot3.0新特性全面解析与应用实战

《SpringBoot3.0新特性全面解析与应用实战》SpringBoot3.0作为Spring生态系统的一个重要里程碑,带来了众多令人兴奋的新特性和改进,本文将深入解析SpringBoot3.0的... 目录核心变化概览Java版本要求提升迁移至Jakarta EE重要新特性详解1. Native Ima

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

SpringBoot集成MyBatis实现SQL拦截器的实战指南

《SpringBoot集成MyBatis实现SQL拦截器的实战指南》这篇文章主要为大家详细介绍了SpringBoot集成MyBatis实现SQL拦截器的相关知识,文中的示例代码讲解详细,有需要的小伙伴... 目录一、为什么需要SQL拦截器?二、MyBATis拦截器基础2.1 核心接口:Interceptor

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核