maven模块化管理

news/2025/2/24 15:49:50

将一个大项目拆分成若干个子模块,方便项目管理维护、扩展,也方便模块间的相互引用,资源共享

具体步骤

先创建一个空项目(父项目)即下图的sky-take-out,然后打开项目结构的模块,选中父模块,再点+,
在这里插入图片描述
在这里插入图片描述
如果是导入模块,则导入对应模块的pom.xml文件
我们来看一下父工程的pom文件
在这里插入图片描述

  • parent表示父工程
  • 第11-14行本项目的坐标
  • modules表示本项目的子模块
  • properties管理依赖的版本
<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>${mybatis.spring}</version>
</dependency>

在这里插入图片描述

子模块可以引用同一父工程的其他子模块,这些被引用的子模块一般是可复用的公共模块,比如这里的pojo封装实体类对象,common封装各种工具类对象

dependencies和dependencyManagement

父工程使用 dependencies直接声明依赖,子工程会自动继承父工程的依赖,无需重复声明。子工程的 pom.xml 不需要再写这个依赖。

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
  </dependency>
</dependencies>

父工程使用 dependencyManagement管理依赖,子工程不会自动继承这些依赖!必须显式声明需要的依赖,但可以省略version和 scope

父工程

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

子工程·

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
  </dependency>
</dependencies>

http://www.niftyadmin.cn/n/5864552.html

相关文章

支持向量机(SVM)在 NLP 中的使用场景

支持向量机(Support Vector Machine, SVM)是一种强大的监督学习算法,广泛应用于分类任务中。由于其出色的分类性能和高效的计算特点,SVM 已经成为自然语言处理(NLP)领域中的一种经典模型。SVM 在 NLP 中的应用非常广泛,尤其在文本分类任务中,表现出色。 本文将探讨 SV…

深度解析:大模型在多显卡服务器下的通信机制与分布式训练——以DeepSeek、Ollama和vLLM为例

一、引言&#xff1a;大模型与多显卡的必然结合 随着大模型参数规模突破千亿级&#xff08;如GPT-4、DeepSeek&#xff09;&#xff0c;单显卡的显存容量与算力已无法满足需求。多显卡并行计算成为训练与推理的核心技术&#xff0c;其核心挑战在于高效通信与负载均衡。本文以国…

《论多源数据集成及应用》审题技巧 - 系统架构设计师

论多源数据集成及应用写作框架 一、考点概述 本论题“论多源数据集成及应用”主要考察的是计算机软件测试工程师在数据管理和集成方面的专业知识与实践能力。论题聚焦于信息爆炸时代企业、组织和个人所面临的数据挑战&#xff0c;特别是如何有效地收集、整理和清洗来自不同渠…

Spring Security+JWT+Redis实现项目级前后端分离认证授权

1. 整体概述 权限管理包括用户身份认证和授权两部分&#xff0c;简称认证授权。对于需要访问控制到资源&#xff0c;用户首先经过身份认证&#xff0c;认证通过后用户具有该资源的访问权限方可访问。 1.1 认证概述 认证是确认用户身份的过程&#xff0c;确保用户是谁。 1.1.1 …

【STM32 基于PID的闭环电机控制系统】

STM32 基于PID的闭环电机控制系统 目录 STM32 基于PID的闭环电机控制系统一、PID算法在STM32F103C8T6中的实现思路二、代码实现与解释三、PID算法的调试与优化四、总结 一、PID算法在STM32F103C8T6中的实现思路 基本概念 • 目标 &#xff1a;通过PID算法调节电机的转速&#…

`sh` 与 `bash` 的区别详解

sh 与 bash 的区别详解 1. 历史背景 sh (Bourne Shell)&#xff1a; 由 Stephen Bourne 在 1977 年开发&#xff0c;是 Unix 系统的默认 Shell。语法简洁&#xff0c;但功能有限。 bash (Bourne Again Shell)&#xff1a; 由 Brian Fox 在 1989 年开发&#xff0c;是 sh 的扩…

第15届 蓝桥杯 C++编程青少组中/高级选拔赛 202401 真题答案及解析

第 1 题 【 单选题 】 表达式117 % 16 的结果是( )。 A:0 B:5 C:7 D:10 解析: % 是取模运算符,用于计算两个数相除后的余数。 计算 117 / 16,结果是 7,余数是 5。因此,117 % 16 = 5。答案: B 第 2 题 【 单选题 】 下列选项中,字符数组定义正确的是( …

MongoDB03 - MongoDB索引,事务和安全

MongoDB索引&#xff0c;事务和安全 文章目录 MongoDB索引&#xff0c;事务和安全一&#xff1a;事务和锁1&#xff1a;MongoDB事务机制&#xff1a;不建议使用2&#xff1a;MongoDB的锁机制 二&#xff1a;MongoDB的索引机制1&#xff1a;初始索引2&#xff1a;索引详解2.1&am…