分模块开发的意义及开发步骤

news2024/11/24 17:04:27

在这里插入图片描述

🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
c语言
数据结构
javaweb

石可破也,而不可夺坚;丹可磨也,而不可夺赤。


Maven进阶

  • 一、分模块开发
    • 1.1分模块开发的意义
    • 1.2分模块开发步骤
  • 二、依赖管理
    • 2.1依赖传递
      • 2.1.1依赖传递冲突问题
    • 2.2可选依赖
    • 2.3排除依赖

一、分模块开发

1.1分模块开发的意义

  • 将原始模块按照功能拆分成若干个子模块,方便模块间的相互调用,接口共享
    在这里插入图片描述

1.2分模块开发步骤

  • 1.创建Maven模块
    在这里插入图片描述

在这里插入图片描述


在这里插入图片描述


  • 2.书写模块代码
    • 将maven项目中的pojo模块单独分开
      在这里插入图片描述
  • 在pojo模块中写入maven项目所需要的类

将pojo模块安装到本地仓库,maven项目需要使用pojo,就从pom.xml文件中导入pojo的依赖即可

  • 例如我的项目中springmvc_maven需要使用springmvc_pojo中的类,则在springmvc_mavenpom.xml文件中导入springmvc_pojo的依赖:
  • springmvc_maven中添加:
<dependencies>
    <dependency>
      <groupId>org.example</groupId>
      <artifactId>springmvc_pojo</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
  </dependencies>
  • 注意:要先将springmvc_pojo进行install操作,将依赖下载到本地仓库中
    在这里插入图片描述

  • 仓库中有了依赖jar/war包
    在这里插入图片描述

  • 此时在运行maven项目即可成功引入依赖
    在这里插入图片描述


二、依赖管理

2.1依赖传递

  • 依赖指当前项目运行所需jar包,一个项目可以设置多个依赖
  • 格式:
<dependencies>
    <dependency>
      <groupId>org.example</groupId>
      <artifactId>springmvc_pojo</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
  </dependencies>
  • 依赖具有传递性
    • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
    • 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源

2.1.1依赖传递冲突问题

  • 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
  • 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
  • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
    在这里插入图片描述

在这里插入图片描述


2.2可选依赖

  • 可选依赖是对外隐藏当前所依赖的资源 – 不透明
<dependency>
      <groupId>org.example</groupId>
      <artifactId>springmvc_pojo</artifactId>
      <version>1.0-SNAPSHOT</version>
      <!--可选依赖是隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递-->
      <optional>false</optional>
    </dependency>

2.3排除依赖

  • 排除依赖是指主动断开依赖的资源,被排除的资源无需指定版本 – 不需要
<dependency>
      <groupId>org.example</groupId>
      <artifactId>springmvc_pojo</artifactId>
      <version>1.0-SNAPSHOT</version>
      <!--排除依赖是隐藏当前资源对应的依赖关系-->
      <exclusions>
        <exclusion>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  • 排除依赖资源仅指定DA即可,无需指定V

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

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

相关文章

FlexTools plugin and 3dWindow plugin for SketchUp Crack

FlexTools v2.3.6 plugin for SketchUp 3dWindow v.4.5 plugin for SketchUp 建筑师和3D艺术家使用FlexTools创建SketchUp门、窗、楼梯和其他建筑元素&#xff0c;具有卓越的速度和控制水平。 SketchUp功能强大但易于使用的扩展。对于在施工图或建筑图中使用SketchUp的每个人…

Python 学习笔记——代码基础

目录 Python基础知识 变量 赋值 数据类型 print用法 print格式化输出 运算符 if-else 数据结构 元组 in运算符 列表 切片 [ : ] 追加 append() 插入 insert&#xff08;&#xff09; 删除 pop() 字典 循环 for循环 for循环应用——遍历 for循环应用——累加…

企业如何有效进行远程控制权限管理?向日葵权限管理能力解析

企业对于远程控制这一技术的管理&#xff0c;主要分为两部分&#xff0c;一种管理的目的是提升效率&#xff0c;另一种的目的是降低风险&#xff0c;我们这里着重聊聊后者。 企业管理远控行为&#xff0c;核心关键词是“权限”&#xff0c;通过不同的权限策略和能力&#xff0…

通信模块和光模块有什么区别?通信模块是光模块吗?

在现代科技高速发展的时代&#xff0c;通信技术扮演着举足轻重的角色&#xff0c;促进着全球信息的传递与交流。而在通信技术领域&#xff0c;通信模块与光模块是两个重要的组成部分。它们都在数据传输中发挥着关键作用&#xff0c;但又有着一些显著的区别。本文易天光通信将对…

一文看尽R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD详解

一文看尽R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD详解 以下六篇文章总结详细&#xff1a; 1. 一文读懂目标检测&#xff1a;R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD 2. 【深度学习】R-CNN 论文解读及个人理解 3、R-CNN论文详解 4、一文读懂Faster RCNN 5、学一百遍都…

Dockerfile概念、镜像原理、制作及案例讲解

1.Docker镜像原理 Linux文件操作系统讲解 2.镜像如何制作 3.Dockerfile概念 Docker网址&#xff1a;https://hub.docker.com 3.1 Dockerfile关键字 4.案例

基于YOLOv8模型的人体摔倒行为检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOv8模型的人体摔倒行为检测系统可用于日常生活中检测与定位摔倒行人&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的目标检测&#xff0c;另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检测算法训练数…

Transformer是什么,Transformer应用

目录 Transformer应用 Transformer是什么 Transformer应用:循环神经网络 语言翻译:注重语句前后顺序 RNN看中单个特征; CNN:看中特征之间时序性 模型关注不同位置的能力 Transformer是什么 Transformer是一个利用注意力机制来提高模型训练速度的模型。关于注意力机…

分布式事务与解决方案

一、什么是分布式事务 首先我们知道本地事务是指事务方法中的操作只依赖本地数据库&#xff0c;可保证事务的ACID特性。而在分布式系统中&#xff0c;一个应用系统被拆分为多个可独立部署的微服务&#xff0c;在一个微服务的事务方法中&#xff0c;除了依赖本地数据库外&#…

R语言实现神经网络(1)

#R语言实现神经网络 library(neuralnet) library(caret) library(MASS) library(vcd) data(shuttle) str(shuttle)#因变量use; table1<-structable(windmagn~use,shuttle) mosaic(table1,shadingT) mosaic(use~errorvis,shuttle) prop.table(table(shuttle$use,shuttle$stab…

当你出差在外时,怎样轻松访问远程访问企业局域网象过河ERP系统?

文章目录 概述1.查看象过河服务端端口2.内网穿透3. 异地公网连接4. 固定公网地址4.1 保留一个固定TCP地址4.2 配置固定TCP地址 5. 使用固定地址连接 概述 ERP系统对于企业来说重要性不言而喻&#xff0c;不管是财务、生产、销售还是采购&#xff0c;都需要用到ERP系统来协助。…

1191. K 次串联后最大子数组之和;2171. 拿出最少数目的魔法豆;1297. 子串的最大出现次数

1191. K 次串联后最大子数组之和 核心思想&#xff1a;贪心&#xff0c;如果k < 2 那么只需要按照求最大子数组和来求即可&#xff0c;如果k>2了&#xff0c;那么如果子数组的和大于0就把它加在一起&#xff0c;如果不大于0就不要这部分。 2171. 拿出最少数目的魔法豆 …

Octree八叉树python

原理 简单示例&#xff1a; 假设我们有以下一组三维点云数据&#xff1a; points [[0.1, 0.1, 0.1],[0.4, 0.1, 0.1],[0.1, 0.4, 0.1],[0.4, 0.4, 0.1],[0.1, 0.1, 0.4],[0.4, 0.1, 0.4],[0.1, 0.4, 0.4],[0.4, 0.4, 0.4], ] 我们可以使用八叉树将这些点云数据存储在三维空…

如何构造不包含字母和数字的webshell

利用不含字母与数字进行绕过 1.异或进行绕过 2.取反进行绕过 3.利用php语法绕过 利用不含字母与数字进行绕过 基本代码运行思路理解 <?php echo "A"^""; ?> 运行结果为! 我们可以看到&#xff0c;输出的结果是字符"!"。之所以会…

干翻Dubbo系列第十一篇:Dubbo常见协议与通信效率对比

文章目录 文章说明 一&#xff1a;协议 1&#xff1a;什么是协议 2&#xff1a;协议和序列化关系 3&#xff1a;协议组成 &#xff08;一&#xff09;&#xff1a;头信息 &#xff08;二&#xff09;&#xff1a;体信息 4&#xff1a;Dubbo3中常见的协议 5&#xff1a;…

数据结构—线性表的查找

7.查找 7.1查找的基本概念 问题&#xff1a;在哪里找&#xff1f;——查找表 查找表是由同一类型的数据元素&#xff08;或记录&#xff09;构成的集合。由于“集合”中的数据元素之间存在着松散的关系&#xff0c;因此查找表是一种应用灵便的结构。 问题&#xff1a;什么查找&…

07- RTC实时时钟

RTC实时时钟 RTC实时时钟RTC时钟来源&#xff1a;RTC的特征&#xff1a;简化的RTC框图及原理简介&#xff1a;RTC由两部分组成&#xff1a;RTC相关库函数&#xff1a;库函数的讲解和使用&#xff1a;RTC配置步骤&#xff1a; 示例 RTC实时时钟 RTC时钟来源&#xff1a; RTC的特…

并发编程4:Java 中的并发基础构建模块

目录 1、同步容器类 1.1 - 同步容器类的问题 1.2 - 迭代和容器加锁 2、并发容器类 2.1 - ConcurrentHashMap 类 2.2 - CopyOnWriteArrayList 类 3、阻塞队列和生产者-消费者模式 3.1 - 串行线程封闭 4、阻塞方法与中断方法 5、同步工具类 5.1 - 闭锁 -> CountDow…

【分布式共识算法】Basic Paxos 算法

basic paxos算法&#xff1a;描述的是多个节点就某个值达成共识。 muti-paxos 算法&#xff1a;描述的是执行多个basic paxos实例&#xff0c;就一系列值达成共识。 共识其实&#xff0c;比如当多个客户端请求服务器&#xff0c;修改同一个值X 多个阶段达成共识。 原理 角色…

213、仿真-基于51单片机智能电表电能表用电量电费报警Proteus仿真设计(程序+Proteus仿真+原理图+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、原理图 五、程序源码 资料包括&#xff1a; 需要完整的资料可以点击下面的名片加下我&#xff0c;找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选…