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

学习maven(maven 项目模块化,继承,聚合)

前言

本篇博客的核心:理解maven 项目模块化,继承,聚合 的含义

maven 项目模块化

含义

maven项目模块化:使用maven 构建项目,管理项目的方式,我们可以将maven项目根据内在的关系拆分成很多个小项目【模块】这样更方便管理。

我举个例子方便大家理解

在现实生活中,汽车厂家进行汽车生产时,由于整个生产过程非常复杂和繁琐,工作量非常大,所以车场都会将整个汽车的部件分开生产,最终再将生产好的部件进行组装,形成一台完整的汽车。

如下图所示

如果对应到maven工程 根据我们之前所学的三层架构思想,一个完整的maven项目根据模块化的理解,应该就是如下图所示:

maven 继承

在我们学习Java基础的时候就知道, 封装,继承 ,多态 是对象的三大特点。其中继承 是一般是子类 继承父类,从父类中获取属性或方法。

在这里 maven 继承,又是表示什么呢?

子模块从父模块中继承 共享的依赖,配置等

大家请看,上面那幅图,我们发现 ,无论是实体类 projo  还是 dao层,service层 ,都写着从maven父模块中去继承一些东西可能是依赖也可能是相同的配置等【这个根据具体情况论】

现在我们知道 maven 继承是什么意思后,我们应该 如何表示 子模块和父模块的关系呢?

在Java基础中我们知道 extend 关键字 后面跟着的父类。那么在maven 构建的项目中,我们应该如何确定该模块是父模块呢?

如下图所示

我们是通过在该模块的pom 文件中 添加  打包方式为 pom 在 packaging 标签中

<packaging> pom </packaging>

maven 聚合

maven 聚合的含义?

就是将 maven 子模块 放在父模块中pom文件统一管理 使用modules 标签

好处

  • 统一管理

例如拆分后的maven工程有多个,如果要进行打包,就需要针对每个工程分别执行打包命令,操作起来非常繁琐。这时就可以使用<modules>标签将这些工程统一聚合到maven工程中,需要打包的时候,只需要在此工程中执行一次打包命令,其下被聚合的工程就都会被打包了。

  • 辨别身份

当在父模块中看到 modules 标签,就知道该标签的内容就是表示都是子模块的

如下图所示

实例

创建一个maven项目,其中包括子模块,父模块

重点

这些 表示maven 继承,聚合关系 不用我们手动在maven 父模块的pom文件中添加,一般是我们当右键点击父模块创建子模块时,会自动更新到pom文件中。

相关文章:

学习maven(maven 项目模块化,继承,聚合)

前言 本篇博客的核心&#xff1a;理解maven 项目模块化&#xff0c;继承&#xff0c;聚合 的含义 maven 项目模块化 含义 maven项目模块化&#xff1a;使用maven 构建项目&#xff0c;管理项目的方式&#xff0c;我们可以将maven项目根据内在的关系拆分成很多个小项目【模块】…...

KDD 2025预讲会:10位一作的论文分享与话题思辨|12月18日全天直播

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 圆桌思辨&#xff1a;一作们的KDD 2025投稿经验分享与热点探讨 1. KDD 2025 与往年相比有哪些新变化&#xff1f;两次投稿周期的新规则有哪些影响&#xff1f; 2. 第一篇KDD的工作是如何成功被接收的&#xff1…...

掌握特征提取:机器学习中的 PCA、t-SNE 和 LDA模型

文章目录 一、说明二、既然有 PCA 技术降维&#xff0c;为什么还要学习 t-SNE&#xff1f;2.1 t-SNE的核心思想&#xff1a;2.2 保持点之间的局部关系有什么意义&#xff1f;2.3 t-SNE 的几何直觉&#xff1a; 三、t-SNE 的数学公式&#xff1a;四、目标函数&#xff1a;五、梯…...

JAVA基础:注释

JAVA基础:注释 作用 使得代码中的一段文本不被执行,起到解释说明的作用。 分类 JAVA中的注释有三种: 单行注释 //单行注释多行注释 /* 多 行 注 释 */文档注释 /***@deprecated comments* @author lhy*/文档注释可以添加一些参数作为说明。 有趣的代码注释 卡车/* * *…...

从源码构建安装Landoop kafka-connect-ui

背景 部署Landoop kafka-connect-ui最简单的办法还是通过docker来部署&#xff0c;我们之前的kafka-connect-ui就是通过docker部署的&#xff0c;但是&#xff0c;最近发现个问题&#xff1a;当使用docker部署且防火墙使用的是firewalld的情况下&#xff0c;就会出现端口冲突。…...

【自动驾驶】Ubuntu22.04源码安装Autoware Core/Universe

【自动驾驶】Ubuntu22.04源码安装Autoware Core/Universe 官方源码安装教程前置条件安装ROS2 Humble安装Autoware Core/Universe配置开发环境配置工作空间设置控制台 官方源码安装教程 链接&#xff1a;https://autowarefoundation.github.io/autoware-documentation/main/ins…...

使用Nexus3搭建npm私有仓库

一、npm介绍 npm的全称是Node Package Manager&#xff0c;它是一个开放源代码的命令行工具&#xff0c;用于安装、更新和管理Node.js模块。npm是Node.js的官方模块管理器&#xff0c;它允许用户从一个集中的仓库中下载和安装公共的Node.js模块&#xff0c;并将这些模块集成到…...

OpenHarmony和OpenVela的技术创新以及两者对比

两款有名的国内开源操作系统&#xff0c;OpenHarmony&#xff0c;OpenVela都非常的优秀。本文对二者的创新进行一个简要的介绍和对比。 一、OpenHarmony OpenHarmony具有诸多有特点的技术突破和重要贡献&#xff0c;以下是一些主要方面&#xff1a; 架构设计创新 分层架构…...

【LeetCode每日一题】Leetcode 1071.字符串的最大公因子

Leetcode 1071.字符串的最大公因子 题目描述&#xff1a; 对于字符串 s 和 t&#xff0c;只有在 s t t t … t t&#xff08;t 自身连接 1 次或多次&#xff09;时&#xff0c;我们才认定 t 能除尽 s。 给定两个字符串 str1 和 str2 。返回 最长字符串 x&#xff0c;要…...

《C++:计算机视觉图像识别与目标检测算法优化的利器》

在当今科技飞速发展的时代&#xff0c;计算机视觉领域正经历着前所未有的变革与突破。图像识别和目标检测作为其中的核心技术&#xff0c;广泛应用于安防监控、自动驾驶、智能医疗等众多领域&#xff0c;其重要性不言而喻。而 C语言&#xff0c;凭借其卓越的性能、高效的资源控…...

大模型的构建与部署(2)——数据清洗

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl1. 数据清洗的必要性与影响 1.1 数据清洗对模型性能的影响 数据清洗是数据预处理的关键步骤,对于模型训练的性能和准确性有着直接的影响。原始数据中的缺失值、重复值、异常值以及数据格式不一致…...

试题转excel;word转excel;大风车excel

一、问题描述 一名教师朋友&#xff0c;偶尔会需要整理一些高质量的题目到excel中 以往都是手动复制搬运&#xff0c;几百道题几乎需要一个下午的时间 关键这些事&#xff0c;枯燥无聊费眼睛&#xff0c;实在是看起来就很蠢的工作 就想着做一个工具&#xff0c;可以自动处理…...

微信小程序webview和小程序通讯

1.背景介绍 1.1需要在小程序嵌入vr页面&#xff0c;同时在vr页面添加操作按钮与小程序进行通信交互 1.2开发工具&#xff1a;uniapp开发小程序 1.3原型图 功能&#xff1a;.点击体验官带看跳转小程序的体验官带看页面 功能&#xff1a;点击立即咨询唤起小程序弹窗打电话 2.…...

ChatGPT大模型 创作高质量文案的使用教程和案例

引言 随着人工智能技术的飞速发展,大语言模型如 ChatGPT 在创作文案、生成内容方面展现出了强大的能力。无论是个人用户还是企业用户,都可以利用 ChatGPT 提高工作效率、激发创意、甚至解决实际问题。本文将详细介绍 ChatGPT 如何帮助创作各类高质量文案,并通过具体案例展示…...

Vue Web开发(八)

1. VueWeb面包屑和tag的布局 本章节完成VueWeb面包屑和tag的布局&#xff0c;并且与左侧菜单联系&#xff0c;涉及组件间通信。 1.1. 页面创建 &#xff08;1&#xff09;首先我们先完成每个页面的路由&#xff0c;之前已经有home页面和user页面&#xff0c;缺少mail页面和其…...

element-ui实现table表格的嵌套(table表格嵌套)功能实现

最近在做电商类型的官网&#xff0c;希望实现的布局如下&#xff1a;有表头和表身&#xff0c;所以我首先想到的就是table表格组件。 表格组件中常见的就是&#xff1a;标题和内容一一对应&#xff1a; 像效果图中的效果&#xff0c;只用基础的表格布局是不行的&#xff0c;因…...

【考前预习】4.计算机网络—网络层

往期推荐 【考前预习】3.计算机网络—数据链路层-CSDN博客 【考前预习】2.计算机网络—物理层-CSDN博客 【考前预习】1.计算机网络概述-CSDN博客 目录 1.网络层概述 2.网络层提供的两种服务 3.分类编址的IPV4 4.无分类编址的IPV4—CIDR 5.IPV4地址应用规划 5.1使用定长子…...

【java】MDC

目录 1. 说明2. 作用3. 使用4. 与TraceID的关系5. 注意事项 1. 说明 1.MDC&#xff08;Mapped Diagnostic Context&#xff09;是一个用于在多线程环境中追踪和传递日志上下文信息的机制。2.映射诊断环境。3.MDC是一个线程本地的、可维护的、可传递的上下文环境。4.它允许开发…...

Android 好的开源库

1. 权限请求框架 GitHub - getActivity/XXPermissions: Android 权限请求框架&#xff0c;已适配 Android 14 2. 下载框架 GitHub - lingochamp/okdownload: A Reliable, Flexible, Fast and Powerful download engine....

Go 语言结构

Go 语言结构 Go 语言,也称为 Golang,是一种由 Google 开发和支持的静态类型、编译型编程语言。它于 2009 年首次发布,旨在提高多核处理器、网络资源和大型代码库的性能。Go 语言以其简洁的语法、并发支持和强大的标准库而闻名,特别适合构建高性能的网络服务和分布式系统。…...

嵌入式存储优化实战:如何为你的AUTOSAR FEE模块选择合适的FeeMainFunctionPeriod与FeeMaxBytesPerCycle?

嵌入式存储优化实战&#xff1a;AUTOSAR FEE模块参数配置与性能调优 在汽车电子控制单元&#xff08;ECU&#xff09;的开发中&#xff0c;存储管理一直是影响系统性能和可靠性的关键因素。AUTOSAR的Flash EEPROM Emulation&#xff08;FEE&#xff09;模块作为非易失性数据存储…...

为内部工具集成大模型能力时如何选择与接入 Taotoken

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为内部工具集成大模型能力时如何选择与接入 Taotoken 在企业内部开发数据分析、客服助手、代码生成等工具时&#xff0c;引入大模型…...

SpringBoot3项目里用Druid总报错?试试这个1.2.18版本的starter,亲测有效

SpringBoot3与Druid兼容性实战&#xff1a;1.2.18版本Starter的救火指南 当你满怀期待地将SpringBoot2.x项目升级到SpringBoot3&#xff0c;却在集成Druid连接池时遭遇各种莫名其妙的报错&#xff0c;那种感觉就像在高速公路上突然爆胎。作为Java开发者最信赖的数据库连接池之…...

从代码到生活:技术人的自我成长之路

从代码到生活&#xff1a;技术人的自我成长之路 引言 作为一名技术人&#xff0c;我们的成长不仅体现在技术能力的提升上&#xff0c;更体现在个人生活的方方面面。今天就来分享一下我的自我成长之路&#xff0c;希望能给你一些启发。 技术成长 持续学习 技术发展很快&#xff…...

《超图解趣味数学:微积分》与《图解微积分》哪本更适合小学生阅读

一、《超图解趣味数学&#xff1a;微积分》更适合小学生阅读 《超图解趣味数学&#xff1a;微积分》更适合小学生阅读‌&#xff0c;尤其适合在家长或教师引导下进行数学启蒙。 该书专为‌7-15岁青少年‌设计&#xff0c;内容以趣味漫画、生活场景和小品文形式展开&#xff0c;…...

DMA链表模式(LLI)实战:如何用一块内存搞定不连续地址的数据搬运?

DMA链表模式(LLI)实战&#xff1a;如何用一块内存搞定不连续地址的数据搬运&#xff1f; 在物联网和通信系统的开发中&#xff0c;我们经常遇到需要从多个分散的数据源收集信息&#xff0c;或将数据分发到不同目标地址的场景。比如一个智能家居网关需要同时处理来自温湿度传感…...

CANN/asc-devkit Mull乘法溢出API

Mull 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://gitcode.com/cann/…...

如何快速提高能力

人机协作&#xff0c;AI模型&#xff1a;Deepseek仅供参考如何快速提高能力在快节奏的现代社会中&#xff0c;每个人都渴望快速提升自己的能力&#xff0c;无论是职场竞争力、专业技能&#xff0c;还是通用素养。能力的提升并非一蹴而就&#xff0c;但遵循科学有效的方法&#…...

别再死记硬背公式了!用VHDL和Quartus II手把手教你玩转一位全加器(附完整源码与仿真)

从零实现数字逻辑&#xff1a;用VHDL在Quartus II中构建全加器的完整指南 当第一次接触数字逻辑设计时&#xff0c;那些抽象的真值表和逻辑表达式常常让人望而生畏。作为一名曾经同样困惑的工程师&#xff0c;我深刻理解初学者面对理论知识与实际工程实现之间的鸿沟。本文将带你…...

手把手教你用VSCode+OpenOCD实时查看HPM6750外设寄存器(附SVD文件配置)

手把手教你用VSCodeOpenOCD实时监控HPM6750寄存器状态 调试嵌入式系统时&#xff0c;最令人头疼的莫过于面对一个"黑箱"——明明程序在跑&#xff0c;却看不到硬件寄存器的实时状态。这种盲目操作就像蒙着眼睛修车&#xff0c;效率低下且容易出错。本文将彻底解决这个…...