Maven

一、Maven是什么?

Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)

功能:项目构建、依赖

二、Maven基础概念

1、仓库

用于储存资源,包含各种jar包

主要分为本地仓库(公司、个人存放jar包的仓库,连接远程仓库获取资源)与中央仓库(Maven团队维护,储存所有资源的仓库)

其中为保证调用jar包效率,我们引入中间仓库——私服(部门/公司范围内储存资源的仓库,从中央库获取资源),私服可以利用间接获取的方式更快、更高效的去获取jar包。

私服的作用:保存具有版权的资源,仅对范围内共享资源,对内部开放,不对外共享。

 

2、坐标

  • 为什么引入坐标?

资源量巨大,需要查找相关资源需要坐标引导

  • 什么是坐标?

    Maven中的坐标用于描述仓库中资源的位置,它使用唯一标识,唯一性定位资源,通过该标识可以将资源的识别与下载工作交由机器完成

  • Maven坐标主要组成

    • groupld:定义当前Maven项目隶属组织名称(例:com.zhujiantao)

    • artifactld:定义当前Maven项目名称(通常是模块名称,例:CRM、SMS等)

    • version:定义当前项目版本号

<!-- https://mvnrepository.com/artifact/com.vaadin/flow -->
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>flow</artifactId>
    <version>9.0.16</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>
​

3、Maven项目构建

4、依赖管理

  • 依赖具有传递性(相对而言)

    • 直接依赖:在当前项目中通过依赖配置建立的依赖关系

    • 间接依赖:被依赖资源的资源如果依赖其他资源,当前资源简介依赖其他资源

  • 依赖传递冲突问题:

    • 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高

    • 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的

  • 可选依赖:

    隐藏依赖关系

    <optional>true<optional>

  • 排除依赖

  • 依赖范围

    依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围

    作用范围

    • 主程序范围有效(main文件夹范围内)

    • 测试程序范围有效(test文件夹范围内)

    • 是否参与打包(package指令范围内)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值