maven 继承和聚合的区别

news/2024/12/29 4:33:26/

maven 继承和聚合的区别

参考 https://cloud.tencent.com/developer/article/1397748

继承

  • 目的:统一管理version版本,少写冗余代码。
  • 使用:
    • 父类pom不写业务,只写 pom的jar包版本等信息,
    • 子类中使用 parent 标签,指定 父类的 坐标,从而继承 父类pom的某些值
      • 比如,父类的groupId,artifactId, version;properties, dependencyversion 版本等,
    • 父类中一般用 dependencyManagement 标签,字类需要引入的直接用 dependency标签,无需version
    • 父类中的 dependency与dependencyManagement区别:父类的Dependency会强制引入子类,dependencyManagement只是声明,不会强制被子类继承过去,子类需要显示引入才行。
  • 案例:源码地址
    父工程的pom
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job</artifactId>
    <version>2.4.0-SNAPSHOT</version>
    <packaging>pom</packaging> <!--重要--><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>	    
    </properties>
    
    子工程的pom
    <parent><groupId>com.xuxueli</groupId><artifactId>xxl-job</artifactId><version>2.4.0-SNAPSHOT</version>
    </parent>
    <artifactId>xxl-job-admin</artifactId>
    <packaging>jar</packaging>
    
    在这里插入图片描述

聚合

  • 目的:方便1次性构建多个代码模块,maven 1次执行,可同时编译打包多个模块

  • 使用:

    • 聚合工程的pom中,新增 标签 <modules>,指定子模块的名字
    • 打包时,直接在聚合工程的pom上右键,maven clean package 即可实现 1次性打包3个工程
  • 案例:源码地址
    聚合工程的pom

    <modules><module>xxl-job-core</module><module>xxl-job-admin</module><module>xxl-job-executor-samples</module>
    </modules>
    

    在这里插入图片描述

总结

在实际项目中,大家会发现一个 pom 既是聚合 pom,又是父 pom,这么做主要是为了方便。


http://www.ppmy.cn/news/7330.html

相关文章

RedisTemplate操作redis

目录 Redis Repositories方式 a、启用 Repository 功能 b、注解需要缓存的实体 c、创建一个 Repository 接口 d、测试类中测试 Redis Repositories方式 Spring Data Redis 从 1.7 开始提供 Redis Repositories &#xff0c;可以无缝的转换并存储 domain objects&#xff0…

Python采集某网站m3u8内容,美女我来了~

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 环境使用: Python 3.8 Pycharm 模块使用: import requests >>> pip install requests import re 正则表达式 解析数据 import json 安装python第三方模块: win R 输入 cmd 点击确…

一文读懂机器学习常用算法的基本概念和适用场景

引用一句英国统计学家George E. P. Box的名言&#xff1a;All models are wrong, but some are useful. 没有哪一种算法能够适用所有情况&#xff0c;只有针对某一种问题更有用的算法。 机器学习算法不会要求一个问题被 100%求解&#xff0c;取而代之的是把问题转化为最优化的…

C# XML基本操作

一 XML的内容 二 XML的处理方式 1 DOM 文档对象模型&#xff08;Document Object Model&#xff09; 2 SAX XML解析的简单API&#xff08;Simple API for XML&#xff09; 3 .NET提供了XML支持&#xff1a;System.XML名称空间 三 常用的XML类 1 XmlDocument .LoadXml()…

【MySQL基础教程】函数的介绍与使用

前言 本文为 【MySQL基础教程】函数的介绍与使用 相关知识&#xff0c;下边具体将对字符串函数&#xff0c;数值函数&#xff0c;日期函数&#xff0c;流程函数等进行详尽介绍~ &#x1f4cc;博主主页&#xff1a;小新要变强 的主页 &#x1f449;Java全栈学习路线可参考&…

Mysql process 问题,kill不用的process

这个一般会出现在连接池中&#xff0c;导致连接池数量不够然后连接失败&#xff0c;所以要kill 我们kill的都是sleep的&#xff0c;就是没有释放但是不用的链接 前言 sql中的show full processlist是查看线程&#xff0c;实际就是查这个表 select * from information_schema.…

Qt样式(qss)使用小结(软件换肤,比如暗黑模式)

1.背景&#xff1a; Qt style sheet&#xff08;qss&#xff09;跟前端技术一样&#xff0c;就是为了美化界面。关键是&#xff0c;太好用了。之前还为此写过一篇博客。 Qt样式&#xff08;qss&#xff09;的语法定义获得途径&#xff0c;可查资料&#xff0c;可自动生成_大橘…

马上又是新的一年了 “跨年倒计时”送给大家

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;跨年倒计时 ✅创作者&#xff1a;林在闪闪发光 ⏰预计时间&#xff1a;30分钟 &#x1f389;个人主页&#xff1a;林在闪闪发光的个人主页 &#x1f341;林在闪闪发光的个人社区&#xff0c;欢迎你的加入: 林在闪闪发光的…