Maven

Maven的作用

1、依赖管理:方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题。
2、统一项目结构
# 这是maven的项目结构 - src - main # 实际项目资源 - java # java源代码目录 - resources # 配置文件目录 - test # 测试项目资源 - java - resources - pom.xml # 项目配置文件
3、标准跨平台(Linux、Windows、MacOS)的自动化项目构建方式

Maven概述

Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建。
作用
方便的依赖管理
统一的项目结构
标准的项目构建流程

Maven介绍

Maven模型

仓库:用于存储资源,管理各种jar包。
本地仓库:自己计算机上的一个目录
中央仓库:有Maven团队维护的全球唯一的仓库。
远程仓库(私服):一般由公司团队搭建的私有仓库。
查找jar包顺序:本地仓库-->远程仓库(私服)-->中央仓库

Maven安装

安装步骤
1.
Maven官网下载:选择第二个下载即可
2.
配置本地仓库:
修改conf/settings. xml中 <localRepository>​ 为一个指定目录,作为我们的本地仓库地址。
3.
配置阿里云私服:
修改conf/settings. xml中 <mirrors>​ 标签,添加一个子标签
alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central
4.
配置环境变量:MAVEN_HOME为maven的解压目录,并将其bin目录加入PATH环境变量
测试是否配置完成
打开cmd
输入 mvn -v ​ 指令,看看是否会出现Maven的版本信息

Maven的目录结构

# Maven的目录结构 - bin # 存放的是可执行文件 - boot # - conf # Maven的配置文件 - lib # Maven所需要的依赖

IDEA集成Maven

配置Maven环境

选择IDEA中的File-->Settings-->Build, Execution, Deployment-->Build Tools-->Maven
设置IDEA使用本地安装的MaVen,并修改配置文件及本地仓库路径
检查Maven关联的JRE版本是否是我们所使用的
配置Java语言的字节码版本
之前的配置只是配置单独的一个项目,如果想让IDEA中的所有项目都使用这样的配置。
则可以在IDEA开始的界面进行上面的配置操作。
如果打开了一个项目,则可以在File-->New Projects Setup-->Settings for New Projects进行全局的配置。

IDEA导入Maven项目

点击右侧的Maven管理界面,单击加号导入,选择导入项目的pom. xml文件即可

Maven坐标

什么是坐标?
Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置。
使用坐标来定义项目或引入项目中需要的依赖。
Maven坐标主要组成
groupld:定义当前Maven项目隶属组织名称(通常是域名反写)
artifactld:定义当前Maven项目名称(通常是模块名称)
version:定义当前项目版本号
例如:
xml
com.tersesystems.logback logback-honeycomb-playws_2.12 1.0.3

Maven依赖

依赖管理

依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖。
配置:
1.
pom. xml中编写 <dependencies>​ 标签
2.
<dependencies>​ 标签中使用 <dependency>​ 引入坐标
3.
定义坐标的groupld,artifactld,version
4.
击刷新按钮,引入最新加入的坐标依赖
如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中去搜索。

依赖传递

依赖具有传递性
直接依赖:在当前项目中通过依赖配置建立的依赖关系
间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源
排除依赖
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本
xml
com.tersesystems.logback logback-honeycomb-playws_2.12 1.0.3 junit junit

依赖范围

依赖的jar包,默认情况下,可以在任何地方使用。可以通过 <scope>..</scope>​ 设置其作用范围作用范围
主程序范围有效(main文件夹范围内)
测试程序范围有效(test文件夹范围内)
是否参与打包运行(package指令范围内)
xml
com.tersesystems.logback logback-honeycomb-playws_2.12 1.0.3 test # 控制依赖范围
scope的取值:

Maven的生命周期

Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一。
Maven中有3套相互独立的生命周期
clean:清理工作
default:核心工作,如:编译、测试、打包、安装、部署等
site:生成报告、发布站点等
clean:清除上一次构建生成的文件
compile:编译项目源代码
test:使用合适的单元测试框架运行测试
package:将编译后的文件打包,如:jar、war等
install:安装项目到本地仓库
注意:在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。
分别是clean、default、site三套生命周期。
注:Maven的所有工作都是由对应的插件来完成工作的。
免责声明:此片文章是个人学习笔记,存在借鉴,若有冒犯或侵权,联系可删除。