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

Python工程师Java之路(p)Maven聚合和继承

文章目录

  • 依赖管理
    • 依赖传递
    • 可选依赖和排除依赖
  • 继承与聚合

依赖管理

指当前项目运行所需的jar,一个项目可以设置多个依赖

<!-- 设置当前项目所依赖的所有jar -->
<dependencies><!-- 设置具体的依赖 --><dependency><!-- 依赖所属群组id --><groupId>org.springframework</groupId><!-- 依赖所属项目id --><artifactId>spring-webmvc</artifactId><!-- 依赖版本号 --><version>1.0-SNAPSHOT</version></dependency>
</dependencies>

依赖传递

  • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
  • 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
  • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的

可选依赖和排除依赖

可选依赖和排除依赖的区别

  • 可选依赖(optional):对外隐藏当前所依赖的资源
    A依赖B,B依赖C,C不想被A依赖进来
<dependency><groupId>com.itheima</groupId><artifactId>maven_03_pojo</artifactId><version>1.0-SNAPSHOT</version><!--可选依赖是隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递性--><optional>false</optional>
</dependency>
  • 排除依赖(exclusions):主动断开依赖的资源,被排除的资源无需指定版本
    A依赖B,B依赖C,A不想将C依赖进来
<dependency><groupId>com.itheima</groupId><artifactId>maven_04_dao</artifactId><version>1.0-SNAPSHOT</version><!--排除依赖是隐藏当前资源对应的依赖关系--><exclusions><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion><exclusion><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></exclusion></exclusions>
</dependency>

继承与聚合

  • 聚合
    将多个模块组织成一个整体,同时进行项目构建的过程

  • 聚合工程
    通常是一个不具有业务功能的工程(有且仅有一个pom文件)

  • 作用:使用聚合工程可以将多个工程编组,通过对聚合工程进行构建,实现对所包含的模块进行同步构建。
    当工程中某个模块发生更新(变更)时,必须保障工程中与已更新模块关联的模块同步更新,此时可以使用聚合工程来解决批量模块同步构建的问题。

  • 继承描述的是两个工程间的关系,子工程可以继承父工程中的配置信息,常见于依赖关系的继承

  • 作用:
    1、简化配置
    2、减少版本冲突

1、创建工程

2、创建模块


打包类型说明
jar打包成jar,是默认的打包方式
war打包成war,发布在服务器上
pom用在父级工程或聚合工程,用于版本控制

聚合

<packaging>pom</packaging>
<modules><module>module1</module><module>module2</module>
</modules>

继承

<parent><groupId>org.example</groupId><artifactId>project1</artifactId><version>1.0-SNAPSHOT</version>
</parent>

相关文章:

Python工程师Java之路(p)Maven聚合和继承

文章目录 依赖管理依赖传递可选依赖和排除依赖 继承与聚合 依赖管理 指当前项目运行所需的jar&#xff0c;一个项目可以设置多个依赖 <!-- 设置当前项目所依赖的所有jar --> <dependencies><!-- 设置具体的依赖 --><dependency><!-- 依赖所属群组…...

Java 复习笔记 - Lambda 表达式 he 经典算法题

文章目录 Lambda表达式 概述&#xff08;一&#xff09;基本作用&#xff08;二&#xff09;特点 一&#xff0c;初识Java中的Lambda 表达式二&#xff0c;函数式编程三&#xff0c;省略写法四&#xff0c;练习&#xff1a;使用Lambda 表达式 简化Comparator接口的匿名形式综合…...

算法——快乐数

202. 快乐数 - 力扣&#xff08;LeetCode&#xff09; 由图可知&#xff0c;其实这也是一个判断循环的过程&#xff0c;要用到快慢指针&#xff0c;且相遇后&#xff0c;若在全为1的循环里&#xff0c;那么就是快乐数&#xff0c;若相遇后不为1&#xff0c;说明这不是快乐数。 …...

vue使用window.location.href 跳转失败

问题&#xff1a; vue项目中直接使用window.lcocation.href跳转外链&#xff0c;但是跳转的链接会被拼接成这样 http://localhost:8080/#/www.baidu.com 原因&#xff1a; 我们打开的外部链接会自动拼接我们的源地址&#xff0c;导致网址链接不正确&#xff0c;无法正常访问 …...

【备忘】清理Office缓存

【背景】电脑安装了M365 Apps for enterprise的客户端&#xff0c;遇到不常见的奇怪问题。尝试看清理缓存是否可以解决。 【清理步骤】 1. 关闭所有Office365 应用&#xff1b; 2. 搜索 %AppData% &#xff0c;并打开该文件夹&#xff1b; 3. 进到 AppData > Local > M…...

MacOS环境变量source生效但重启后又失效

https://blog.csdn.net/dxk539687357/article/details/127942044 .bash_profile 和 .zshrc 都是macos系统重环境变量配置的文件&#xff0c;但是两者有不同之处。 .bash_profile&#xff1a;在执行source ~/.bash_profile&#xff0c;只在当前窗口生效&#xff0c;但关闭当前…...

Sql语句大全--插入

今天抽空整理下项目中的Sql语句 项目中用到的Sql语句大全 Insert 语句&#xff0c;有简有难 Insert 语句&#xff0c;有简有难 insert into clayor (pco,ppolnum,ptype,psn,prela,pname,pid,paddr1,paddr2,pbakcod1,pbakcod2,paccnum,pchkflag,pagtcod,pstatus, pchksts,pauth…...

Unity 收取“运行费”引众怒,开源免费3D游戏引擎CGE(Castle Game Engine)吸引开发者关注

特征 1. 总结2. 跨平台3. 可视化编辑器4.视口与场景&#xff0c;相机&#xff0c;导航和其他组件5. 数据格式 5.1. glTF5.2. X3D5.3. 精灵表5.4. 脊柱6. 图形效果7. 图片8. 用户界面组件 8.1. 文本和字体9. 网络10. 优化和分析11. 声音12. 物理13. 平铺集成14. 粒子15. 使用现代…...

Apache DolphinScheduler - 快速扩展 TaskPlugin 从入门到放弃

目前在大数据生态中&#xff0c;调度系统是不可或缺的一个重要组件。Apache DolphinScheduler 作为一个顶级的 Apache 项目&#xff0c;其稳定性和易用性也可以说是名列前茅的。而对于一个调度系统来说&#xff0c;能够支持的可调度的任务类型同样是一个非常重要的因素&#xf…...

线性代数的本质(四)——行列式

文章目录 行列式二阶行列式 n n n 阶行列式行列式的性质克拉默法则行列式的几何理解 行列式 二阶行列式 行列式引自对线性方程组的求解。考虑两个方程的二元线性方程组 { a 11 x 1 a 12 x 2 b 1 a 21 x 1 a 22 x 2 b 2 \begin{cases} a_{11}x_1a_{12}x_2b_1 \\ a_{21}x_…...

适合初学者快速入门的Numpy实战全集

适合初学者快速入门的Numpy实战全集 Numpy是一个用python实现的科学计算的扩展程序库&#xff0c;包括&#xff1a; 1、一个强大的N维数组对象Array&#xff1b;2、比较成熟的&#xff08;广播&#xff09;函数库&#xff1b;3、用于整合C/C和Fortran代码的工具包&#xff1b…...

rabbitmq 面试题

1.交换机类型 RabbitMQ是一个开源的消息队列系统&#xff0c;它支持多种交换机类型&#xff0c;用于在消息的生产者和消费者之间路由和分发消息 Direct Exchange&#xff08;直接交换机&#xff09;&#xff1a;Direct交换机是最简单的交换机类型之一。它将消息按照消息的Rout…...

比较Visual Studio Code中的文件

目录 一、比较两个文件 1.1VS code中的文件大致分为两类&#xff1a; 1.2如何比较VS code中的两个文件&#xff1f; 二、并排差异模式&#xff1a;VS code中的一种差异模式 三、内联差异模式&#xff1a;VS code中的另一种差异模式 四、VS code忽略在行首或者行尾添加或删除…...

誉天在线项目-UML状态图+泳道图

什么是UML UML&#xff08;Unified Modeling Language&#xff09;是一种用于软件系统建模的标准化语言。它提供了一组图形符号和规范&#xff0c;用于描述和设计软件系统的结构、行为和交互。 UML图形符号包括类图、用例图、时序图、活动图、组件图、部署图等&#xff0c;每…...

【linux基础(六)】Linux中的开发工具(中)--gcc/g++

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到开通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; Linux中的开发工具 1. 前言2.…...

u盘上面 安装 ubuntu 系统

u盘上面 安装 ubuntu 系统 下载 一个 Ubuntu 22.04.3 LTS 桌面版 https://ubuntu.com/download/desktop 找到一个U盘 参考文章&#xff1a; 把 Ubuntu 装到U盘里随身携带&#xff0c;并同时支持 BIOS 和 UEFI 启动 https://www.luogu.com.cn/blog/GGAutomaton/portable-ubu…...

【推荐】SpringMVC与JSON数据返回及异常处理机制的使用

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《【推荐】Spring与Mybatis集成整合》 ⛺️ 生活的理想&#xff0c;为了不断更新自己 ! 1.JSON 在SpringMVC中&#xff0c;JSON数据返回通常是通过使用ResponseBody注解将Java对象转换为JSO…...

SpringBoot新增拦截器详解

目录 一、拦截器使用 二、SpringMvc拦截器接口 三、SpringBoot集成拦截器 拦截器&#xff08;Interceptor&#xff09;通常是指在软件开发中用于处理请求和响应的中间件组件。拦截器的主要目的是在请求进入某个处理流程或在响应返回给客户端之前执行一些额外的操作或逻辑。 …...

Golang开发--select

在Go语言中&#xff0c;select语句用于在多个通道操作中进行选择。select语句使得程序可以同时等待多个通道的操作&#xff0c;并在其中任意一个通道就绪时执行相应的操作。以下是select语句的详细描述&#xff1a; select { case <-ch1:// 当ch1通道可读时执行的操作 case…...

贝塞尔曲线的一些资料收集

一本免费的在线书籍&#xff0c;供你在非常需要了解如何处理贝塞尔相关的事情。 https://pomax.github.io/bezierinfo/zh-CN/index.html An algorithm to find bounding box of closed bezier curves? - Stack Overflow https://stackoverflow.com/questions/2587751/an-algo…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...