当前位置: 首页 > 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 语言以其简洁的语法、并发支持和强大的标准库而闻名,特别适合构建高性能的网络服务和分布式系统。…...

ai赋能开发:让快马智能助手帮你诊断和优化openclaw ubuntu部署难题

最近在Ubuntu上部署OpenClaw项目时&#xff0c;遇到了不少头疼的问题。从依赖冲突到参数调优&#xff0c;每一步都可能踩坑。不过我发现&#xff0c;借助AI辅助开发工具&#xff0c;这些问题可以变得更可控。今天就来分享下如何构建一个AI工具箱来优化OpenClaw的部署和开发体验…...

电力系统输电线路距离保护建模与仿真:方向阻抗继电器探秘

1.电力系统输电线路距离保护的建模与仿真matlab/simulink仿真模型 2.方向阻抗继电器 &#xff08;1&#xff09;“0度接线”方向阻抗继电器的构造 &#xff08;2&#xff09;“相电压和具有K3I0补偿的相电流接线”的方向阻抗继电器模块的构造在电力系统中&#xff0c;输电线路距…...

目录中不显示标题中间的软换行符Shift+Enter

文档中的标题过长时&#xff0c;通常使用ShiftEnter软换行符来给标题在合适的位置换行&#xff0c;以实现美观的排版效果。然而&#xff0c;插入软换行符会造成自动产生的目录中标题文本中间出现空格&#xff0c;如图所示&#xff1a;那么&#xff0c;如何让目录中不显示这个软…...

暗黑破坏神2重制版智能辅助:自动化流程与效率提升完全指南

暗黑破坏神2重制版智能辅助&#xff1a;自动化流程与效率提升完全指南 【免费下载链接】botty D2R Pixel Bot 项目地址: https://gitcode.com/gh_mirrors/bo/botty 在《暗黑破坏神2&#xff1a;重制版》的冒险旅程中&#xff0c;你是否曾因重复刷怪、繁琐的装备拾取而感…...

DocRes实战指南:高效统一文档图像修复任务的完整解决方案

DocRes实战指南&#xff1a;高效统一文档图像修复任务的完整解决方案 【免费下载链接】DocRes [CVPR 2024] DocRes: A Generalist Model Toward Unifying Document Image Restoration Tasks 项目地址: https://gitcode.com/gh_mirrors/do/DocRes DocRes是一个革命性的通…...

3步搞定B站4K视频下载:开源工具bilibili-downloader终极指南

3步搞定B站4K视频下载&#xff1a;开源工具bilibili-downloader终极指南 【免费下载链接】bilibili-downloader B站视频下载&#xff0c;支持下载大会员清晰度4K&#xff0c;持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 想要免费下载…...

OBS智能背景移除插件:无绿幕实时抠图与低光增强完整指南

OBS智能背景移除插件&#xff1a;无绿幕实时抠图与低光增强完整指南 【免费下载链接】obs-backgroundremoval An OBS plugin for removing background in portrait images (video), making it easy to replace the background when recording or streaming. 项目地址: https:…...

数据库索引原理:B+树与哈希索引的深度对决

数据库索引原理&#xff1a;B树与哈希索引的深度对决在数据库的世界里&#xff0c;索引是提升查询性能的“核武器”。如果把数据库表比作一本厚厚的书&#xff0c;那么索引就是书中的目录。没有目录&#xff0c;想要找到特定的知识点只能一页页翻找&#xff08;全表扫描&#x…...

工控机驱动安全自查:5分钟用DriverView揪出可疑第三方驱动(附分析技巧)

工控机驱动安全自查&#xff1a;5分钟用DriverView揪出可疑第三方驱动&#xff08;附分析技巧&#xff09; 工业自动化设备的稳定运行离不开安全的驱动环境。想象一下&#xff0c;当你负责的生产线突然出现不明原因的停机&#xff0c;经过层层排查&#xff0c;最终发现是一个来…...

效率飙升:借鉴Cherry Studio思路,用快马平台自动化你的前端工作流

最近在尝试优化前端开发流程时&#xff0c;发现Cherry Studio的工作流理念特别值得借鉴——把重复性工作交给工具&#xff0c;让开发者专注创意和核心逻辑。刚好体验了InsCode(快马)平台的AI辅助开发功能&#xff0c;发现它能完美实现这种高效工作模式。下面分享我的实践心得&a…...