maven介绍与安装
一. maven概述
1. 关于项目依赖的jar包管理
问题描述:
直接在每个项目的lib文件夹中复制jar包会导致多个问题,包括jar包的重复存放、版本冲突以及手动管理带来的不便和错误。
问题分析:
- 重复存放:每个项目都保存一份相同的jar包,不仅占用额外空间,也增加了维护的复杂度。
- 版本冲突:当不同项目依赖相同jar包但版本不同时,可能会引发冲突,尤其是在共享组件或接口时。
- 手动管理:手动复制jar包容易出错,如遗漏、版本错误等,增加了开发和部署的复杂度。
解决方案:
- 使用Maven(或Gradle等构建工具)来管理依赖。Maven可以通过
pom.xml文件定义项目依赖,自动从中央仓库或私有仓库下载所需jar包,解决了重复存放和手动管理的问题。同时,Maven支持版本管理和依赖传递,有效避免了版本冲突。 - 创建一个内部仓库(如Nexus或Artifactory),用于存放私有或第三方无法直接访问的jar包,便于团队内部共享和版本控制。
2. 关于数据库通用类的维护和分发
问题描述:
通过邮件手动分发修正后的jar包给各个项目组,不仅效率低下,还容易出错,如忘记通知某些项目组、版本更新不同步等。
问题分析:
- 效率低下:每次修改后都需要手动分发,增加了维护成本。
- 版本不同步:不同项目组可能使用不同版本的jar包,导致功能不一致或bug复现。
- 容易遗漏:在多个项目组之间分发时,可能会遗漏某些组,导致问题持续存在。
解决方案:
- 使用Maven管理通用类库。将通用类库发布为一个Maven项目,并上传到内部仓库。各个项目组只需在
pom.xml中添加依赖,Maven就会自动从仓库中获取最新版本的jar包。 - 当通用类库有更新时,只需在内部仓库中更新最新版本,所有依赖该库的项目在下次构建时都会自动获取最新版本,无需手动干预。
- 利用Maven的SNAPSHOT版本特性,可以在开发过程中频繁更新库文件,供其他项目组测试和使用最新功能或修复。
重写优化后的内容:
- 依赖管理:采用Maven等构建工具来管理项目的jar包依赖,通过
pom.xml文件定义项目所需的所有jar包,Maven会自动从配置的仓库中下载并管理这些依赖,避免了手动复制和版本冲突的问题。 - 库文件分发:将数据库通用类库发布为一个Maven项目,并上传至内部仓库。其他项目组通过Maven依赖管理,自动获取和使用最新版本的库文件。这样,当库文件有更新时,只需在内部仓库中更新版本,即可实现所有项目的同步更新,大大提高了开发效率和维护的便捷性。
3 Maven详解
3.1 Maven定义
Maven是一个强大的项目管理与构建自动化工具。它基于项目对象模型(Project Object Model, POM),通过定义一套标准化的项目结构、构建生命周期以及依赖管理系统,极大地简化了项目的构建、依赖管理和发布过程。Maven不仅限于Java项目,但它对Java生态系统的支持尤为出色。通过使用Maven,开发者可以专注于业务逻辑的实现,而无需过多关注项目的构建和依赖管理细节。
3.2 Maven的作用
- 项目构建管理:
Maven为项目定义了一套标准的构建生命周期,包括编译、测试、打包、部署、运行等阶段。这些阶段为项目从源代码到可运行产品的转换过程提供了清晰的框架。开发人员和测试人员可以遵循这一标准流程,确保项目构建的一致性和可重复性。 - 依赖管理:
Maven的依赖管理系统能够自动解析项目所需的外部库(jar包),并从配置的仓库(如Maven中央仓库、私有仓库等)中下载这些依赖。它还能处理依赖之间的传递性,即如果一个库依赖于另一个库,Maven会自动下载并管理这些传递性依赖,避免了版本冲突和手动管理依赖的繁琐。 - 插件管理:
Maven通过插件机制扩展其功能。插件是Maven的核心,它们定义了Maven生命周期中的具体任务。Maven提供了大量的内置插件,用于执行编译、测试、打包等常见任务。此外,开发者还可以根据需要自定义插件或使用第三方插件,以满足特定的项目需求。Maven的插件管理机制使得这些插件的集成和使用变得非常简单和高效。
maven的下载与安装
1. 下载
官方网站:http://maven.apache.org/
下载页面:http://maven.apache.org/download.cgi
直接下载 , 下载过后解压压缩包

2.配置环境变量
打开系统环境变量

点击新建系统变量

设置变量名为MAVEN_HOME
变量值为maven下载位置

找到path , 新建%MAVEN_HOME%\bin

点击确定即可
相关文章:
maven介绍与安装
一. maven概述 1. 关于项目依赖的jar包管理 问题描述: 直接在每个项目的lib文件夹中复制jar包会导致多个问题,包括jar包的重复存放、版本冲突以及手动管理带来的不便和错误。 问题分析: 重复存放:每个项目都保存一份相同的jar…...
瑞友科技项目经理认证负责人杨文娟受邀为第四届中国项目经理大会演讲嘉宾︱PMO评论
全国项目经理专业人士年度盛会 北京瑞友科技股份有限公司项目经理认证负责人杨文娟女士受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾,演讲议题为“瑞友科技项目经理人才培养体系落地实践”。大会将于10月26-27日在北京举…...
Ubuntu基础使用
Ubuntu是一种流行的Linux操作系统。它提供了一个友好的图形界面和许多强大的功能,适用于个人电脑和服务器。一般来说使用Ubuntu都是在虚拟机上运行的。 一、虚拟机的安装 VMware是一家专门提供虚拟化解决方案的公司,而VMware Workstation是该公司开发的…...
知识图谱结构的提示
文章介绍了一种名为“知识图谱结构作为提示”(KG Structure as Prompt)的新方法,该方法旨在增强小型语言模型(SLMs)在知识驱动的因果发现任务中的能力。通过将知识图谱中的结构信息融入到基于提示的学习中,…...
(计算机网络)网络层
目录 一.网络层提供哪种服务 二.两种服务的比较 三.ip协议 四.ip地址 五.ip地址的分类 六.子网掩码 七.路由器介绍 一.网络层提供哪种服务 1.ip地址--唯一的标识互联网上的某一台主机 2. 虚电路:虚拟的电路 二.两种服务的比较 ip数据报,不需要建…...
[upload]-[GXYCTF2019]BabyUpload1-笔记
尝试上传.htaccess和图片和一句话木马提示 php文件提示 响应头可以看到 构造一句话图片木马如下: <script languagephp>eval($_POST[cmd]);</script> 上传成功 必须增加文件夹下jpg后缀解析php .htaccess如下 <FilesMatch "jpg">Set…...
2023卫星视频综述论文Recent Advances in Intelligent Processing of Satellite Video
2023卫星视频综述论文Recent Advances in Intelligent Processing of Satellite Video 1.摘要2.引言3. 文章的定量分析4 难点与挑战5 方法论系统A. 卫星视频观察的特点B. 卫星视频目标跟踪与运动估计C. 卫星视频目标检测D. 卫星视频超分辨率 (VSR)E. 卫星视频目标分割ÿ…...
Mysql的Binlog的数据样例
Binlog(Binary Log)是 MySQL 中的二进制日志,记录了所有更改数据库的操作,包括数据的插入、更新和删除,它是主从复制、数据恢复和审计的重要来源。 以下是一些常见的 Binlog 数据样本和它们的结构: 1. 基…...
基于VS2022+Qt5+C++的串口助手开发
目录 一、前言 二、环境准备 三、创建QT串口项目 编辑 四、串口项目实现 1.ui界面设计 2.添加QT串口模块 3.功能实现 ①串口扫描 ②波特率、停止位等设置 ③接收数据 ④发送数据 五、最终效果 六、总结 一、前言 如果有人之前看过我文章的话应该知道…...
Mysql之视图
视图 创建语法:create [or replace] view 视图名称 as select * from where [with check option] 查询:show create view 视图名称 查看视图数据:select * from 视图名称 修改: 1,可以使用创建的语法更新…...
【开端】Java 分页工具类运用
一、绪论 Java系统中,分页查询的场景随处可见,本节介com.baomidou.mybatisplus.core.metadata.IPage;来分页的工具类 二、分页工具类 public class PageUtils implements Serializable { private static final long serialVersionUID 1L; /**…...
leetcode每日一题48
143.环形链表ii 快慢指针 至于入环点的计算 设链表中环外部分的长度为 a。slow 指针进入环后,又走了 b 的距离与 fast 相遇。此时,fast 指针已经走完了环的 n 圈,因此它走过的总距离为 an(bc)ba(n1)bnc。 任意时刻,fast 指针走过…...
源码工具文档手册
手册文档工具 TinaSDK开发文档:https://tina.100ask.net/ 开发板使用文档:https://allwinner-docs.100ask.net/ 教程示例 一板懂百板通:https://www.bilibili.com/video/BV1Nx4y1w7AF/?spm_id_from333.999.0.0 T113 LVGLUI开发࿱…...
hive之greatest和least函数
1、greatest函数: greatest(col_a, col_b, ..., col_n)比较n个column的大小,过滤掉null或对null值进行处理,当某个column中是string,而其他是int/double/float等时,返回null; 举例: select g…...
C:数组传参的本质
1、一维数组传参的本质 数组传参是指在函数调用时将数组作为参数传递给函数。 int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };test(arr);return 0;}数组传参只需要写数组名就可以了。注意:数组名是arr,而不是arr[10] 数组传参形参该怎么写呢&am…...
excel 2019版本的index match搜索功能
{TEXTJOIN("", TRUE, IF((sheet2!A:A"文字")*(sheet2!C:CC5), sheet2!G:G, ""))} excel单元格输入公式后: TEXTJOIN("", TRUE, IF((sheet2!A:A"文字")*(sheet2!C:CC5), sheet2!G:G, "")) 按CtrlShi…...
【问题解决】apache.poi 3.1.4版本升级到 5.2.3,导出文件报错版本无法解析
【问题解决】apache.poi 3.1.4版本升级到 5.2.3,导出文件报错无法解析 3.1.4版本代码: /*** 创建workbook* param inp* return* throws Exception*/public Workbook createworkbook(InputStream inp) throws Exception {if (!inp.markSupported()) {inp…...
(亲测有效)SpringBoot项目集成腾讯云COS对象存储(2)
接上文(亲测有效)SpringBoot项目集成腾讯云COS对象存储(1)-CSDN博客 目录 3、通用能力类 文件下载 测试 3、通用能力类 文件下载 官方文档介绍了2种文件下载方式。一种是直接下载 COS 的文件到后端服务器(适合服务…...
界面优化 - QSS
目录 1、背景介绍 2、基本语法 3、QSS 设置方式 3.1 指定控件样式设置 代码示例: 子元素受到影响 3.2 全局样式设置 代码示例: 使用全局样式 代码示例: 样式的层叠特性 代码示例: 样式的优先级 3.3 从文件加载样式表 代码示例: 从文件加载全局样式 3.4 使用 Qt Desi…...
实现基于TCP协议的服务器与客户机间简单通信
服务器端程序 #include <myhead.h> #define SER_PORT 6666 //服务器端口号 #define SER_IP "192.168.2.53" //服务器ip地址 int main(int argc, char const *argv[]) { /*创建套接字 int socket(int domain, int type, int protocol);*/ …...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
