Maven (简单理解)

简介: Maven (简单理解)

什么是 Maven ?

Maven 是一个项目管理工具, 通过 pom.xml 文件的配置, 来获取 jar 包 (而不用手动下载, 添加 jar 包)

官方一点的说法: Maven 是一个项目管理工具, 基于 POM (Project Object Medel 项目对象模型) 的概念, Maven 可以通过一小段描述信息来管理项目的创建, 报告, 文档.


Maven 的功能

  1. 项目构建 – Maven 命令 : 编译, 测试, 打包, 发布 …
  2. 管理依赖 – 通过 pom.xml 管理 依赖 (jar 包) 的添加
    2.1 依赖坐标 : (GroupId, ArtifactId, Version), 三者描述该依赖所在中央仓库的位置

2.2 依赖传递 : 父依赖可能依托子依赖实现, 于是引入父依赖时, 必须先引入子依赖 (Maven 可以帮我们自动引入子依赖)

2.3 依赖排除 : 有些依赖中的有些内容是不能够存在的 (Maven 能够帮助我们自动排除)

Maven 仓库

在 Maven 中, 通过 GroupId, ArtifactId, Version 的配置, 来唯一识别一个 jar 包

Maven 仓库则用于存储 jar 包

在 pom 文件中配置完依赖后, 点击刷新, Maven 会根据坐标的位置, 去仓库寻找 jar 包, 并下载添加到项目中供用户使用


jar 包获取流程

有点类似 JVM 的双亲委派模型

无私服/代理仓库

当项目中引入对应依赖 jar 包后, 首先会查找本地仓库中是否有对应 jar 包

  • 如果有, 则在项目中直接引用
  • 如果没有, 则去中央仓库中下载 jar 包到本地仓库, 项目仍引用 本地仓库 的 jar 包

有私服/代理仓库

当项目中引入对应依赖 jar 包后, 首先会查找本地仓库中是否有对应 jar 包

  • 如果有, 则在项目中直接引用
  • 如果没有, 则去 私服/代理仓库查找,
    – 如果有, 则将资源缓存到本地仓库, 项目使用本地仓库的 jar 包
    – 如果没有, 则去中央仓库中下载 jar 包, 缓存到 私服/代理服务器, 再缓存到本地仓库, 项目仍引用 本地仓库 的 jar 包

目录
相关文章
|
关系型数据库 PostgreSQL
PostgreSQL排序字段不唯一导致分页查询结果出现重复数据
PostgreSQL排序字段不唯一导致分页查询结果出现重复数据
432 0
|
分布式计算 关系型数据库 MySQL
DolphinScheduler安装部署
DolphinScheduler安装部署
1557 0
|
8月前
|
存储 SQL 缓存
StarRocks 存算分离在京东物流的落地实践
本文分享了京东物流在StarRocks存算分离架构上的实践与成果。通过将UData平台从存算一体升级为存算分离,显著提升了查询性能和资源利用率,同时大幅降低了存储成本(90%)和计算资源成本(30%)。文章详细介绍了存算分离的背景、部署方案、性能表现及优化措施,包括联邦查询、实时写入、Compaction调优等关键技术点。未来,京东物流将持续推动存算分离的应用拓展,并探索更多降本增效策略,如Stream Load任务合并与主动缓存管理。
|
Linux Android开发 iOS开发
使用Kivy创建“Hello World”应用并打包成APK
使用Kivy创建“Hello World”应用并打包成APK
10-15|sudo hwclock --systohc这个是什么,什么情况下会用到这个
10-15|sudo hwclock --systohc这个是什么,什么情况下会用到这个
|
关系型数据库 Java MySQL
C#winform中使用SQLite数据库
C#winform中使用SQLite数据库
519 3
C#winform中使用SQLite数据库
|
存储 索引 Python
生信教程:使用全基因组SNP数据进行ABBA-BABA分析
生信教程:使用全基因组SNP数据进行ABBA-BABA分析
|
人工智能 搜索推荐 数据挖掘
云上数字营销:重塑企业营销新生态
AI技术将在云上数字营销中发挥越来越大的作用。企业可以利用AI技术实现自动化营销和智能客服等功能,提高营销效率和用户体验。同时,AI技术还可以帮助企业进行智能分析和预测,为企业的营销
|
算法 定位技术 C语言
51单片机实现俄罗斯方块游戏编程
设计了一款基于AT89C51单片机的俄罗斯方块游戏机,使用LCD12864液晶显示,按键控制方块移动与变形。游戏中,7种不同形状的方块随机下落,填满一行得分,满屏则游戏结束。包含电源、单片机最小系统、LCD和按键模块的硬件电路通过Proteus进行了仿真,展示了游戏运行、得分和计时等。代码部分展示了检查碰撞和更新地图的函数。
364 1
|
JSON 算法 算法框架/工具
【python】python指南(十二):Json与dict、list互相转换
【python】python指南(十二):Json与dict、list互相转换
258 0