当前位置: 首页 > news >正文

Maven高级知识

Maven高级知识

分模块设计与开发
  1. 什么是分模块设计:将项目按照功能/结构拆分成若干个子模块
  2. 为什么要分模块设计:方便项目的管理维护、扩展,也方便模块间的相互调用,资源共享
  3. 注意事项:分模块设计需要先针对模块功能进行设计,再进行编码。不会先将工程开发完毕,然后进行拆分
  4. 实际中开发中都是先分模块设计,然后再开发的。
继承与聚合
  1. 继承

    • 概念: 继承描述的是两个工程间的关系,与java中的继承相似,子工程可以继承父工程中的配置信息,常见于依赖关系的继承。
    • 作用: 简化依赖配置、统一管理依赖
      • 实现:
        <parent><groupId>...</groupId><artifactId>...</artifactId><version>...</version><relativePath>....</relativePath>
        </parent>
        
  2. 版本锁定

    • 在maven中,可以在父工程的pom文件中通过 <dependencyManagement> 来统一管理依赖版本
      • 栗子:
        <!--父工程-->
        <!--统一管理依赖版本-->
        <dependencyManagement><dependencies><!--JWT令牌--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency></dependencies>
        </dependencyManagement>
        
        <!--子工程-->
        <dependencies>
        <!--JWT令牌-->
        <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId>
        </dependency>
        </dependencies>
        
    • 注意:
      • 在父工程中所配置的 <dependencyManagement> 只能统一管理依赖版本,并不会将这个依赖直接引入进来。 这点和
        <dependencies> 是不同的。
      • 子工程要使用这个依赖,还是需要引入的,只是此时就无需指定 <version> 版本号了,父工程统一管理。变更依赖版本,只需在父工程中统一变更。
  3. 属性配置

    • 可以通过自定义属性及属性引用的形式,在父工程中将依赖的版本号进行集中管理维护。 具体语法为:
      1. 自定义属性

         <properties><lombok.version>1.18.30</lombok.version></properties>
        
      2. 引用属性

        <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version>
        </dependency>
        
  4. 聚合

    • 概念: 将多个模块组织成一个整体,同时进行项目的构建。
    • 聚合工程: 一个不具有业务功能的“空”工程(有且仅有一个pom文件) 【PS:一般来说,继承关系中的父工程与聚合关系中的聚合工程是同一个】
    • 作用: 快速构建项目(无需根据依赖关系手动构建,直接在聚合工程上构建即可)
    • 实现: 在maven中,我们可以在聚合工程中通过 <moudules> 设置当前聚合工程所包含的子模块的名称,
      添加如下配置,来指定当前聚合工程,需要聚合的模块:
      <!-- 聚合其他模块 -->
      <modules><module>../tlias-pojo</module><module>../tlias-utils</module><module>../tlias-web-management</module>
      </modules>
      
继承与聚合对比
  • 作用

    • 聚合用于快速构建项目
    • 继承用于简化依赖配置、统一管理依赖
  • 相同点:

    • 聚合与继承的pom.xml文件打包方式均为pom,通常将两种关系制作到同一个pom文件中
    • 聚合与继承均属于设计型模块,并无实际的模块内容
  • 不同点:

    • 聚合是在聚合工程中配置关系,聚合可以感知到参与聚合的模块有哪些
    • 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己
http://www.dtcms.com/a/515538.html

相关文章:

  • Spring Boot 3 + Thymeleaf 基础教程
  • 自动化部署脚本
  • 上海专业网站建设方案wordpress 送女友
  • 人与狗做的电影网站网页搭建服务
  • 前端 数据的转换
  • React useCallback介绍(用来缓存函数的引用,避免每次渲染都重新创建函数)主要用于性能优化
  • VUE工程化开发模式
  • 海口澄迈县建设局网站杭州萧山网络
  • 前端低代码开发工具的崛起与实践经验分享,从效率到可控性的平衡
  • 二、redis集群部署(3主3从)
  • Vue 生命周期详解
  • vue3调用ant-design-vue组件库的a-table组件
  • 手机网站开发软件南昌网站外包
  • 以图搜图随州网站seo诊断
  • java设计模式六、装饰器模式
  • 微信小程序隐藏滚动条多种方法教程
  • AWS DMS实现MySQL到Redshift的CDC增量数据复制方案
  • 王者重名生成查询抖音快手微信小程序看广告流量主开源
  • 旅游网站建设1000字软文范例800字
  • 网站搜索引擎友好性最近三天发生的重要新闻
  • Flink的checkpoint interval与mini-batch什么区别?
  • CADSoftTools发布两款重要更新:CAD VCL Multiplatform 16.2 与 CAD .NET 16全新发布
  • 【个人成长笔记】在本地Windows系统中如何正确使用adb pull命令,把Linux系统中的文件或文件夹复制到本地中(亲测有效)
  • 触摸未来2025-10-22:语序之困
  • 【滑动窗口与双指针】【定长滑窗】—1456. 定长子串中元音的最大数目
  • Flink 实验性特性把“已预分区”的 DataStream 重新解释为 KeyedStream
  • ADB -> 常用文件操作的组合命令
  • 网格系统网站济南网约车公司
  • 社区网站的推广方案手机写wordpress博客
  • 原子性、可见性和指令重排问题的根源