Maven高级1-分模块开发与依赖问题

news2024/11/16 22:45:22

1. 分模块开发与设计

将原始模块按照功能拆分成若干个子模块,方便模块间的相互调用,接口共享;
言简意赅就是把功能模块放出去,然后通过在pom文件中导入坐标找到;

在这里插入图片描述
注意拆出来的功能模块需要通过Maven指令安装模块选择install,下载到Maven的本地仓库中,这样在别的模块中导入坐标才能找到对应的模块jar包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后,每迁出一个模块,如果需要对其他模块的功能存在联系,在相应的模块的pom文件处补齐坐标即可;

2. 依赖管理

2.1 依赖传递

当一个项目依赖于另一个项目时,Maven会自动下载并安装被依赖项目的相关库文件。同时,Maven也会在传递依赖时自动解决依赖冲突的问题。

举个例子,之前做的ssm整合的案例拆分了几个模块,其中在ssm整合的项目中打入了dao模块的坐标,这时就不需要在打入pojo的坐标。因为dao模块中已经打入了pojo坐标。这就说明导入的若干个模块中,存在着依赖关系时,这时我们并不需要导入重复的坐标。
在pom.xml文件中,只需要声明对部分模块的依赖,Maven会自动将所有需要的依赖传递下去,并下载和安装所有必要的库。

Maven中的依赖传递和冲突解决机制可以确保被依赖模块已经包含了我们需要的依赖时,我们无需再次显式导入那个依赖。同时,如果出现依赖冲突,Maven也会自动解决依赖,而不用手动处理。

这里给出依赖冲突的原则:
在这里插入图片描述
并且可以在IDEA中查看依赖的层级图

在这里插入图片描述
在这里插入图片描述

可以看出dao中有pojo的依赖项,存在依赖传递,所以在ssm中可以删掉对pojo模块的依赖项;

在这里插入图片描述

2.2 可选依赖

不透明;
通过optional标签进行可选依赖操作,作用是隐藏当前工程所依赖的资源,隐藏后对应的资源将不具有依赖传递性(例如在dao中隐藏了pojo的依赖,在dao的依赖目录下有pojo的依赖,但是在ssm中不能获得pojo的依赖);

<dependency>
  <groupId>org.example</groupId>
  <artifactId>springmvc_08_dao</artifactId>
  <version>1.0-SNAPSHOT</version>
  <optional>true</optional>
</dependency>

2.3 排除依赖

不需要;
排除一些传递依赖中不需要的间接依赖且不需要写版本;

<dependency>
  <groupId>org.example</groupId>
  <artifactId>springmvc_08_dao</artifactId>
  <version>1.0-SNAPSHOT</version>
      影藏依赖,使其不具备传递依赖性-->
      <optional>true</optional>-->
  <exclusions>
    <exclusion>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </exclusion>
  </exclusions>
</dependency>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/593010.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python Web后端面试常考数据结构与算法(珍藏版)

本文将对Python web后端面试时常考数据结构与算法进行总结&#xff0c;适合即将找工作或面试的你。Python web后端常考数据结构包括: 常见的数据结构链表、队列、栈、二叉树、堆 使用内置的结构实现高级数据结构&#xff0c;比如内置的list/deque实现栈 LeetCode或者剑指Offe…

【配电网重构】高比例清洁能源接入下计及需求响应的配电网重构【IEEE33节点】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

循环冗余计算

题目&#xff1a;若信息码字为111000110&#xff0c;生成多项式 x 5 x^5 x5 x 3 x^3 x3 x x x1&#xff0c;则计算crc校验码为()。 将生成多项式的系数作为除数&#xff08;101011&#xff09;&#xff1b; 获得方法1x50x41x30x21x1生成多项式的最高幂次数&#xff08;5&#…

怎样使用TikTok增加销售额?TikTok选品小tips?

哈喽everybody&#xff01;我又来给大家分享干货了&#xff01;今天为大家带来使用TikTok增加销售额和TikTok选品的小tips&#xff0c;让你运营TikTok Shop不迷茫&#xff0c;快快往下看吧&#xff01; 一、如何使用TikTok吸引客户、增加销售额 1.优化产品目录 与任何线上商店…

Python实现KNN算法(附源码)

本篇我们将讨论一种广泛使用的分类技术&#xff0c;称为k邻近算法&#xff0c;或者说K最近邻(KNN&#xff0c;k-Nearest Neighbor)。所谓K最近邻&#xff0c;是k个最近的邻居的意思&#xff0c;即每个样本都可以用它最接近的k个邻居来代表。 01、KNN算法思想 如果一个样本在特征…

绿色智慧档案顺丰环境一体化平台选型表

盛世宏博八防一体化监控系统选型表 序号 功能选择 1 恒温恒湿系统 温湿度监测 口Y&#xff1a;需要 口N&#xff1a;不需要 空调控制 口Y&#xff1a;需要 口N&#xff1a;不需要 加湿机控制 口Y&#xff1a;需要 口N&#xff1a;不需要 除湿…

KD05丨动量RSI策略

大家好&#xff0c;今天我们来分享魔改RSI策略&#xff0c;RSI即相对强弱指数&#xff0c;本质上就是一个动量指标&#xff0c;用于衡量一定时间内价格变动的速度及其变动的大小。它在0-100的范围内变动&#xff0c;通常以70和30作为过热和过冷的界限。要将RSI指标改为一个趋势…

Smartbi“三步走”构建智慧经营分析平台,实现国有企业监管报送和数智化转型

01. 现状与痛点 — 一直以来&#xff0c;国资国企都是促进我国经济高速发展的领头羊&#xff0c;但近年来受疫情冲击和国际经济下行影响&#xff0c;国资企业经营面临较大压力&#xff0c;同时为实现国有企业高质量发展&#xff0c;国务院国资委下发一系列政策要求&#xff…

Halcon 表面法向量 pcl

一、Halcon halcon 案例&#xff1a; find_surface_model_noisy_data.hdev 思路步骤&#xff1a; 1、读取图像 2、拆通道 3、通过Z通道选出比较合适做匹配的模板 4、通过Z x y 生成一个模型xyz_to_object_model_3d 5、计算表面法向量并生成表面的模型&#xff0c;这个模型…

Linux:apache网页优化

Linux&#xff1a;apache网页优化 一、Apache 网页优化二、网页压缩2.1 检查是否安装 mod_deflate 模块2.2 如果没有安装mod_deflate 模块&#xff0c;重新编译安装 Apache 添加 mod_deflate 模块2.3 配置 mod_deflate 模块启用2.4 检查安装情况&#xff0c;启动服务2.5 测试 m…

字节跳动测试岗,3面都过了,HR告诉我是这个原因才被刷...

说在前面 面试时最好不要虚报工资。本来字节跳动是很想去的&#xff0c;几轮面试也通过了&#xff0c;最后没offer&#xff0c;自己只想到下面几个原因&#xff1a; 虚报工资&#xff0c;比实际高30%&#xff1b;有更好的人选&#xff0c;这个可能性不大&#xff0c;我看还在…

医院检验科LIS系统的常规检验项目有哪些?

医院检验科LIS系统的常规检验项目包括&#xff1a; 白细胞数目、中性粒细胞数目、淋巴细胞数目、单核细胞数目、嗜酸性粒细胞数目、嗜碱性粒细胞数目、中性粒细胞百分比、 淋巴细胞百分比、单核细胞百分比、嗜酸性粒细胞百分比、嗜碱性粒细胞百分比、红细胞数目、血红蛋白、红…

淘宝太细了:mysql 和 es 的5个一致性方案,你知道吗?

说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如拼多多、极兔、有赞、希音的面试资格&#xff0c;遇到一几个很重要的面试题&#xff1a; 说5种mysql 和 elasticsearch 数据一致性方案 与之类似的、其他小伙伴遇到过的问题还…

电脑怎么隐藏文件夹?这样做,快速搞定!

案例&#xff1a;我想把一些敏感和重要的文件夹隐藏起来&#xff0c;不想别人看到它们。在电脑上如何隐藏电脑文件夹&#xff1f;有没有小伙伴知道如何操作&#xff1f;急需&#xff01; 我们在使用电脑的过程中&#xff0c;会产生大量文件&#xff0c;有些文件可能包含私密信…

4.1 Spark SQL概述、数据帧与数据集

一、数据帧 - DataFrame &#xff08;一&#xff09;准备工作 1、准备数据文件 2、启动Spark Shell &#xff08;二&#xff09;加载数据为Dataset 1、读文件得数据集 2、显示数据集内容 3、显示数据集模式 &#xff08;三&#xff09;给数据集添加元数据信息 1、定…

强!PCB“金手指”从设计到生产全流程

在电脑内存条、显卡上&#xff0c;有一排金黄色导电触片&#xff0c;就是大家俗称的“金手指”。 在PCB设计制作行业中的“金手指”(Gold Finger&#xff0c;或称Edge Connector)&#xff0c;是由connector连接器作为PCB板对外连接网络的出口。 关于“金手指”你知道多少呢&a…

像核战争一样,AI可能灭绝人类:Geoffrey Hinton、Sam Altman等百名专家签署了一封公开信

多位图灵奖得主、顶级 AI 公司 CEO、顶尖高校教授&#xff0c;与数百位在各自领域享有话语权的专家&#xff0c;共同签署了一份公开信&#xff0c;内容简单却有力&#xff1a; 降低 AI 灭绝人类的风险&#xff0c;应该与大流行病、核战争等其他社会规模的风险一样&#xff0c;…

AI落地:儿童节礼物指南

这个儿童节&#xff0c;用AI做点不一样的礼物&#xff0c;给孩子一个惊喜。 可行清单&#xff1a; 写走心的贺卡&#xff08;增强表达能力&#xff0c;培养心思细腻&#xff09;用AI让孩子的画的小人动起来&#xff08;激发创造力&#xff0c;培养想象力&#xff09;把孩子的…

Ansys Zemax | 如何模拟部分反射和散射的表面

这篇文章介绍了如何模拟一个部分反射的表面&#xff0c;该表面会根据指定的散射分布对一部分入射光能量进行散射。本文介绍的示例包含部分吸收以及部分镜面反射的情况。(联系我们获取文章附件) 介绍 使用 OpticStudio 非序列模式模拟散射和膜层的能力&#xff0c;我们可以模拟一…

MFC按钮中添加图标

目录 一、创建对话框 二、 开始添加 1、将.ico图片放进res路径下 2、添加资源 3、添加按钮 4、将按钮属性中icon修改为true 5、代码添加 一、创建对话框 首先需要创建个对话框程序&#xff0c;参考之前写的博客&#xff1a; mfc入门基础&#xff08;三&#xff09;创…