maven完结,你真的学完了吗
书接上文:必学的maven的起步-CSDN博客
分模块开发与设计
分模块开发:
- 创建模块
- 书写代码模块
- 模块中需要其他的模块,就将他安装到仓库
- 然后再dep中导入依赖
- 通过maven指令安装模块到本地仓库(install)
聚合与继承
聚合:
- 聚合:将多个模块组织成一个整体,同时进行项目构建的过程。
- 聚合工程:通常是一个不具有业务功能的”空“工程
- 作用:使用聚合工程可以将多个工程编组,通过对聚合工程进行构建,实现对所含的模块进行同步构建
- 当工程中,某个模块发生变更,必须保证保障工程中与已更新模块关联的模块同步更新,此时可以使用聚合工程来解决此批量模块同步构建的问题

<groupId>org.aqiuo</groupId>
<artifactId>spring</artifactId>
<version>1.0-SNAPSHOT</version>
<!--注意打包方式是pom-->
<packaging>pom</packaging><!--设置管理模块的名称-->
<modules><module>../spring02</module><module>../spring03</module><module>../spring04</module>
</modules>
步骤:
1.设置聚合工程的的打包类型为pom
注意:每个maven工程都有对应的打包方式,默认为jar,web工程为war
<packaging>pom</packaging>
2.设置当前的聚合工程所包含的子模块名称
注意:
- 聚合工程所包含的模块再运行构建会根据模块间的依赖关系设置构建顺序
- 与聚合工程的配置书写位置无关
- 参与聚合的工程无法向上感知是否参数聚合。
- 只能向下配置哪些模块与此工程聚合
<modules><module>../spring02</module><module>../spring03</module><module>../spring04</module>
</modules>
继承
概念
- 继承描述的是两个工程间的关系,与java中的继承相似
- 子工程可以继承父工程的配置信息,常见于依赖关系的继承
作用:
- 简化配置
- 减少版本冲突
步骤:
1.创建Maven父模块,设置打包类型为pom
2.在父工程的pom.文件中配置依赖关系(子工程沿用父工程的依赖关系)
<parent><groupId></groupId><artifactId></artifactId><version></version><!--快速找到继承的路径填写父工程的pom文件--><relativePath>../spring</relativePath>
</parent>
3.在父工程的pom.文件中配置子工程中可选的依赖关系
<!--注意在dependencyManagement中配置的是子工程的可选文件-->
<dependencyManagement><dependencies><dependency><groupId></groupId><artifactId></artifactId><version></version></dependency></dependencies>
</dependencyManagement>
4.在子工程中配置当前工程所继承的父工程
<parent><groupId></groupId><artifactId></artifactId><version></version><!--填写父工程的pom文件--><relativePath></relativePath>
</parent>
5.在子工程中配置使用父工程中可选依赖的坐标
<dependencies><dependency><groupId></groupId><artifactId></artifactId>//不用提供版本号,由父项目统一管理,避免版本冲突,加了版本号就是新的了</dependency></dependencies>
聚合和继承的区别:
作用:
- 聚合用于快速构建项目
- 继承用于快速配置
相同点:
- 聚合和继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
- 聚合和继承均属于设计模块,并无实际的模块内容
- 一般聚合和继承都是一个工程
不同点:
- 聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些
- 继承是在子模块中配置关系,父模块无法感知到继承了自己。
属性
属性值(配置properties元素)
使用el表达式${}写入
<properties><junit.version>4.12</junit.version><mysql.version>5.1.35</mysql.version>
</properties>
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency>
版本管理
工程版本:
- SNAPSHOT(快照版本)
- 项目开发中临时输出的版本,称为快照版本
- RELEASE(发布版本)
- 项目开发到进入里程碑后向外部发布的稳定版本。
发布版本:
- alpha版
- beta版
- 纯数字版
实现代码:

多环节的配置与应用
多环境开发
maven提供配置多种环境的设定,帮助开发者使用过程中快速切换环境
<!--开发环境--><profile><id>env_dep</id><properties><jdbc.url>jdbc:mysql://127.0.0.1:8080/ssm</jdbc.url></properties><activation><!--设定是否为默认环境--><activeByDefault>true</activeByDefault></activation></profile><!--生产环境--><profile><id>env_dep1</id><properties><jdbc.url>jdbc:mysql://127.2.2.2:8080/ssm</jdbc.url></properties></profile><!--测试环境--><profile><id>env_dep2</id><properties><jdbc.url>jdbc:mysql://127.3.3.3:8080/ssm</jdbc.url></properties></profile>
</profiles>
指定环境启动命令:
mvn 指令 -P 环境定义id
例子:mvn install -P env_dep
跳过测试

应用场景:
- 功能更新没有开发完毕
- 快速打包
点击下边的图标就可以跳过全部的测试用例

相关文章:
maven完结,你真的学完了吗
书接上文:必学的maven的起步-CSDN博客 分模块开发与设计 分模块开发: 创建模块书写代码模块 模块中需要其他的模块,就将他安装到仓库然后再dep中导入依赖通过maven指令安装模块到本地仓库(install) 聚合与继承 聚合…...
【Xcode】解决Unable to process request - PLA Update available
出现场景 IOS更新app时,使用Xcode上传新版本的包时,提示无法上传。 Unable to process request -PLA update available you currently dont have access to this membership resource. To resolve this issue ,agree to the latest program license a…...
力扣单调栈算法专题训练
目录 1 专题说明2 训练 1 专题说明 本博客用来计算力扣上的单调栈题目、解题思路和代码。 单调栈题目记录: 2232866美丽塔II 2 训练 题目1:2866美丽塔II。 解题思路:先计算出prefix[i],表示0~i满足递增情况下,0~i…...
【NI-RIO入门】理解Windows、Real Time与FPGA之间数据通信的原理
于NI kb摘录 1.概述 对于NI RIO系列设备(CompactRIO、sbRIO、myRIO等)进行编程时,需要注意有三个不同的组件。 人机界面 (HMI) 。有时称为“主机”,为用户提供图形用户界面(GUI),用于监控系统…...
关于游戏性能优化的技巧
关于游戏性能优化的技巧 游戏性能优化对象池Jobs、Burst、多线程间隔处理定时更新全局广播缓存组件缓存常用数据2D残影优化2D骨骼转GPU动画定时器优化DrawCall合批处理优化碰撞层优化粒子特效 游戏性能优化 好久没有在CSDN上面写文章了,今天突然看到鬼谷工作室技术…...
antdesignpro实现滚动加载分页数据
原理解析:每滚动一次相当于翻页,请求后端时给的页码参数要想办法加1,后端才能根据页码给出相应数据 注意后端收到页码参数之后要准确计算出每页的首行数据,关键逻辑代码: # 根据前端传的页码,进行计算下一…...
步兵 cocos2dx 加密和混淆
文章目录 摘要引言正文代码加密具体步骤代码加密具体步骤测试和配置阶段IPA 重签名操作步骤 总结参考资料 摘要 本篇博客介绍了针对 iOS 应用中的 Lua 代码进行加密和混淆的相关技术。通过对 Lua 代码进行加密处理,可以确保应用代码的安全性,同时提高性…...
【算法设计与分析】——动态规划算法
🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL:…...
WPF组合控件TreeView+DataGrid之DataGrid封装
(关注博主后,在“粉丝专栏”,可免费阅读此文) wpf的功能非常强大,很多控件都是原生的,但是要使用TreeViewDataGrid的组合,就需要我们自己去封装实现。 我们需要的效果如图所示&#x…...
PIL/Pillow
Abstract PIL(Python Imaging Library)是一个用于图像处理的 Python 库。它提供了广泛的功能,包括图像加载、保存、调整大小、裁剪、旋转、滤镜应用等。 由于 PIL 的开发停止在 2009 年,因此推荐使用其后续的维护版本 Pillow。Pillow 是一个兼容 PIL 接…...
ARM 汇编入门
ARM 汇编入门 引言 ARM 汇编语言是 ARM 架构的汇编语言,用于直接控制 ARM 处理器。虽然现代软件开发更多地依赖于高级语言和编译器,但理解 ARM 汇编仍然对于深入了解系统、优化代码和进行低级调试非常重要。本文将为您提供一个简单的 ARM 汇编入门指南…...
SQL进阶:多表查询
在SQL基础部分,我们在讲解的过程中只用到了单表查询。但实际上,常见的业务场景单表查询不能满足,或者拆分查询性能过慢。这个时候我们就需要用到连接查询。即查询多表按一定规则合并后的数据。 注意,合并后的数据也是表ÿ…...
多层负载均衡实现
1、单节点负载均衡 1)站点层与浏览器层之间加入了一个反向代理层,利用高性能的nginx来做反向代理 2)nginx将http请求分发给后端多个web-server 优点: 1)DNS-server不需要动 2)负载均衡:通过ngi…...
Redis取最近10条记录
有时候我们有这样的需求,就是取最近10条数据展示,这些数据不需要存数据库,只用于暂时最近的10条,就没必要在用到Mysql类似的数据库,只需要用redis即可,这样既方便也快! 具体取最近10条的方法&a…...
Mybatis之增删改查
目录 一、引言 二、Mybatis——增 举例:添加用户 三、Mybatis——删 举例:删除用户 四、Mybatis——改 举例:修改用户 五、Mybatis——查 六、注意 END: 一、引言 书接上回,我们在了解完mybatis之后,肯…...
Go 代码检查工具 golangci-lint
一、介绍 golangci-lint 是一个代码检查工具的集合,聚集了多种 Go 代码检查工具,如 golint、go vet 等。 优点: 运行速度快可以集成到 vscode、goland 等开发工具中包含了非常多种代码检查器可以集成到 CI 中这是包含的代码检查器列表&…...
SwiftUI 趣谈之:绝不可能(Never)的 View!
概览 SwiftUI 的出现极大的解放了秃头码农们的生产力。SwiftUI 中众多原生和自定义视图对于我们创建精彩撩人的 App 功不可没! 不过,倘若小伙伴们略微留意过 SwiftUI 框架头文件里的源代码,就会发现里面嵌有一些奇怪 Never 类型,…...
etcd是什么
目录 1.关于etcd2.应用场景 本文主要介绍etcd 概念和基本应用场景。 1.关于etcd etcd是一个开源的、分布式的键值存储系统,用于共享配置和服务发现。它是由CoreOS团队开发的,主要用于实现分布式系统的配置管理和服务发现。 etcd的主要特性包括&#x…...
应用全局的UI状态存储AppStorage
目录 1、概述 2、StorageProp 2.1、观察变化和行为表现 3、StorageLink 3.1、观察变化和行为表现 4、从应用逻辑使用AppStorage和LocalStorage 5、从UI内部使用AppStorage和LocalStorage 6、不建议借助StorageLink的双向同步机制实现事件通知 6.1、推荐的事件通知方式…...
MySQL数据库 触发器
目录 触发器概述 语法 案例 触发器概述 触发器是与表有关的数据库对象,指在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的soL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录&am…...
破解AutoDock Vina金属对接难题:3种专业方案实战深度解析
破解AutoDock Vina金属对接难题:3种专业方案实战深度解析 【免费下载链接】AutoDock-Vina AutoDock Vina 项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina AutoDock Vina作为最广泛使用的开源分子对接引擎之一,在处理含金属元素的蛋白…...
PHP 反序列化漏洞深度解析:从原理利用到 allowed_classes 防御实战
PHP 反序列化漏洞深度解析:从原理利用到 allowed_classes 防御实战在 PHP 安全领域,反序列化漏洞(Deserialization Vulnerability) 长期占据高危漏洞的榜首。它允许攻击者在服务器上执行任意代码、删除文件、甚至获取服务器最高权…...
brpc服务发现服务健康状态:集成外部健康检查的终极指南
brpc服务发现服务健康状态:集成外部健康检查的终极指南 【免费下载链接】brpc brpc is an Industrial-grade RPC framework using C Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recomme…...
利用快马平台快速生成javascript交互原型:以动态待办列表为例
利用快马平台快速生成JavaScript交互原型:以动态待办列表为例 最近在尝试快速验证一个待办事项应用的交互设计,发现用传统方式从零开始写代码太耗时了。正好试用了InsCode(快马)平台,只需要描述功能需求,就能自动生成可运行的Jav…...
基于springboot框架个性化旅游线路推荐系统 景区门票 酒店 预订88u7sgf 有论文-idea maven vue
目录系统架构设计技术选型与工具数据库设计核心功能实现论文研究要点开发计划安排项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统架构设计 采用前后端分离架构,后端基于SpringBoot框架,前端使用Vue…...
Cursor Pro功能扩展工具:技术原理与开源解决方案
Cursor Pro功能扩展工具:技术原理与开源解决方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial re…...
使用 Java 8 Lambda 和 Map 重构 If 语句
本文介绍了如何使用 Java 8 的 Lambda 表达式和 Map 优雅重构数据结构包括多个数据结构 if 句子的代码可以提高代码的可读性、可维护性和可扩展性。存储验证逻辑 Map 中,并使用 Lambda 表达式处理可以有效减少代码冗余,使其更容易扩展新的验证规则。在传…...
避开Kaggle糖尿病预测的常见坑:数据预处理、特征解读与模型调优实战指南
避开Kaggle糖尿病预测的常见坑:数据预处理、特征解读与模型调优实战指南 在数据科学竞赛中,Kaggle的Pima印第安人糖尿病预测项目是许多初学者的第一个实战项目。表面上看,这似乎是一个简单的二分类问题——但当你真正开始建模时,…...
vLLM-v0.17.1详细步骤:SSH远程部署+Jupyter可视化结果分析全流程
vLLM-v0.17.1详细步骤:SSH远程部署Jupyter可视化结果分析全流程 1. vLLM框架简介 vLLM是一个专注于大语言模型(LLM)推理和服务的高性能开源库。这个项目最初由加州大学伯克利分校的天空计算实验室开发,现在已经发展成为一个活跃的社区驱动项目…...
OpenClaw学术研究助手:Qwen3-32B驱动的论文摘要与笔记整理
OpenClaw学术研究助手:Qwen3-32B驱动的论文摘要与笔记整理 1. 为什么需要本地化的AI研究助手? 去年冬天,我在整理一个跨学科研究项目的文献时陷入了困境。手头堆积了200多篇PDF论文,每篇都需要提取核心观点、记录关键数据&#…...
