Maven的简单认识和操作

一、Maven是什么?

Maven 本质上是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合,一个项目生命周期,一个依赖管理系统和用来运行定义在生命周期阶段中插件目 标的逻辑,就是用XML描述一个项目的信息(主要是项目依赖jar,插件,仓库等等)。

二、Maven的作用

1、项目构建:提供标准的、跨平台的自动化项目构建方式

2、依赖管理:方便快捷的管理项目依赖的资源(jar包) ,避免资源间的版本冲突问题

3、统一开发结构:提供标准的、统一的项目结构

三、Maven的下载、安装和使用

1、官网下载地址

 https://maven.apache.org/download.cgi

 2、下载压缩包解压可用

解压后目录结构如下:
bin:存放了maven 的命令,比如我们前面用到的 mvn tomcat:run
boot:存放了一些 maven 本身的引导程序,如类加载器等
conf:存放了 maven 的一些配置文件,如 setting.xml 文件
lib:存放了 maven 本身运行所需的一些 jar 包

3、需要预装JDK环境,并配置JAVA_HOME环境变量

配置 MAVEN_HOME ,变量值就是你的 maven 安装的路径(bin 目录之前一级目录)

上面配置了我们的 Maven 软件,注意这个目录就是之前你解压 maven 的压缩文件包在的的目录,最好不要有中文和空格,其次打开path环境变量在value后面添加:%MAVEN_HOME%\bin

4、测试:通过 mvn -v命令检查 maven 是否安装成功 

四、Maven基本概念

4.1、Maven仓库

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

仓库分为:本地仓库、私服仓库、中央仓库

(1)本地仓库:存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包优先从本 地仓库 查找默认本地仓库位置在 ${user.home}/.m2/repository,

本地用户目录:D:\mavenCangKu\repository

(2)私服仓库:保存具有版权的资源,包含购买或自主研发的jar,公司单独开发的私有jar可放置到私服中。(使用私服为了减少对中央仓库的访问时间,提高开发效率)

(3)中央仓库:服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包它包含了世界上大部分流行的开源项目构件,工程依赖的jar包如果本地仓库没有,默认从中央仓库下载。

4.2、Maven坐标

用于描述仓库中资源的位置

可通过https://mvnrepository.com/下载需要的坐标

<project>
    <!-- 模型版本 -->
    <modelVersion>4.0.0</modelVersion>
    <!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,maven会将该项目打成的jar包放本地路径:/com/companyname/project-group -->
    <groupId>com.companyname.project-group</groupId>
    <!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
    <artifactId>project</artifactId>
    <!-- 版本号 -->
    <version>1.0</version>
</project>

Maven坐标主要组成

groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如: org.mybatis)
artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)
version:定义当前项目版本号
packaging:定义该项目的打包方式

Maven坐标的作用:

使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成

4.3、仓库配置

4.3.1  本地仓库配置

 4.3.2  远程仓库配置

 4.3.2  镜像仓库配置

五、Maven依赖管理 

依赖:指当前项目运行所需的jar,一个项目可以设置多个依赖

<!-- 设置当前项目所依赖的所有jar-->
<dependencies>
<!--设置具体依赖-->
<dependency>
<!--依赖所属群组-->
<groupId>junit</groupId>
<!--依赖所属项目-->
<artifactId>junit</artifactId>
<!--依赖版本号-->
<version>4.12</version>
</dependency>
</dependencies>

 依赖传递:依赖具有传递性

分类:

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

2、间接依赖: 被资源的资源如果依赖其他资源,当前项目间接依赖其他资源

如何解决依赖传递冲突问题 :

1、最短路径优先原则

2、路径相同先声明原则

3、特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值