Maven简介
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
POM(Project Object Model):项目对象模型
Maven的作用
- 项目构建:提供标准的、跨平台的自动化项目构建
- 依赖管理:方便快捷的管理项目依赖资源(jar包),避免资源的版本冲突
- 统一的开发结构:提供标准的、统一的项目结构
Maven的下载与安装
官网: http:///
下载地址:http:///download.cgi
下载zip文件直接解压到本地存放的磁盘中,即可安装成功
文件目录说明:
- bin:核心运行文件
- boot:类加载器
- conf:核心配置
- lib:依赖的jar包
Maven的环境变量配置
Maven是依赖于java的,所以需要检查是否有配置
JAVA_HOME
MAVEN环境配置与JAVA_HOME一样的
先配置JAVA_HOME
变量,选择解压maven的文件夹
再配置Path
环境变量
编辑变量里面建议使用绝对路径下的bin如果使用
%MAVEN_HOME\bin%
来配置的话可能是出现环境变量设置不上,就是命令窗口输入mvn
会提示:不是内部或外部命令
终端命令测试是否配置成功
输入如下两个命令中的一个都可以检查是否配置成功
mvn
mvn --version
如下图就是配置成功的实例,不超过显示不是内部或外部命令
Maven基础概念
1、仓库
仓库:用于存储资源包各种jar包
仓库可分为:
本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
远程仓库:非本机电脑上的仓库,为本地仓库提供资源
远程仓库又分为:
中央仓库:Maven团队维护,存储所有资源的仓库
中央仓库地址:https://mvnrepository.com/
私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
私服的作用:
保存具有版权的资源,包含购买或自主研发的jar
中央仓库中的jar都是开源的,不能存储具有版权的资源
一定范围内共享资源,仅对内部开放,不对外共享
4、坐标
用于描述仓库中资源的位置(用于下载)
Maven:坐标主要组成:
groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.mybatis).
artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)
version:定义当前项目版本号
packaging:定义该项目的打包方式
Maven:坐标的作用
使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成
Maven仓库配置
默认的maven仓库位置是存储在C:\Users\用户\.m2/repository
文件下
需要修改一下(根据自身需求)
1、自定义仓库位置
打开E:\apache-maven-3.6.1\conf
目录下的settings.xml修改存放位置
<localRepository>E:\apache-maven-3.6.1\mvn_resp</localRepository>
2、配置阿里云镜像仓库
原因:maven是服务器是国外的,国内下载会很慢,所以都会使用国内的远程仓库下载到本地仓库
在同一个settings.xml
文件下找到mirrors
里面就是配置镜像的信息
<!--配置阿里云镜像-->
<mirror>
<!-- 此镜像的唯一标识,区分不同的mirror袁 -->
<id>alimaven</id>
<!-- 镜像名称 -->
<name>aliyun maven</name>
<!-- 镜像地址 -->
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
IDEA中创建Maven项目
IDEA为目前最新版本:2021.3以上
创建工程并选择JDK版本
基本工程创建
目录结构和pox.xml
配置文件
关于我IDEA中的文件夹颜色不同,是因为使用了IDEA中的插件修改的:可以查看我的博客插件介绍
配置IDEA中的Maven
1、打开设置
2、配置Maven
图一是默认使用IDEA中的Maven
修改自定义安装的maven版本
修改配置信息需要勾选复选框才可以选择文件
在IDEA中的右侧也可以看到Maven工程,里面有生命周期和maven的插件
jar包坐标引入
刷新导入成功之后会在Maven中有jar包的存在
maven自带的项目构建命令
后面的话会使用插件来运行这些命令就会方便很多
IDEA中创建Maven的JaveWeb项目
在工程项目的右上角点击
新建model模块
勾选选择web骨架
模型信息
点击下一步后核对maven版本信息,没问题就点击创建
创建之后需要点击Apple
然后点击OK
web项目骨架会下载一堆的东西,需要联网等待下载
补齐全文件
同样点击右上角的按钮,点击Mark as可以选择文件夹的颜色
补全后的文件路径
安装tomcat服务器插件
先将选pox.xml的文件中的<build></build>
标签的内容全部清除掉
生产的插件会跑到上面需要复制下来
里面也可以设置端口号以及访问路径
<port>端口号</port>
<path>访问路径</path>
刷新maven,查看插件启动tomcat服务器访问index.jsp
双击启动,点击控制台的访问路径,访问的是web项目里的indes.jsp
文件
访问效果
Maven依赖管理
依赖具有传递性
直接依赖:在当前项目中通过依赖配置建立的依赖关系
间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
可选依赖:隐藏当前所依赖的资源(不透明)
在依赖项里面添加即可
<optional>true</optional>
排除依赖(不需要)
被排除的资源无需指定版本
在需要排除的依赖坐标里面添加
<!--排除依赖-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
<!--排除依赖-->
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
Maven依赖范围
依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围
作用范围
1、主程序范围有效(main文件夹范围内)
2、测试程序范围有效(test文件夹范围内)
3、是否参与打包(packagel指令范围内)
Maven项目构建生命周期与插件
==不管执行到哪都需要先执行上面的生命周期才会走到下面
插件
官网地址:https:///plugins/index.html
插件的使用