1. Maven 概述
Maven 是一款用于管理和构建 java 项目的工具,可以进行依赖管理、统一项目结构和项目构建。
1.1 Maven 模型
- 项目对象模型 (Project Object Model)
- 依赖管理模型(Dependency)
- 构建生命周期/阶段(Build lifecycle & phases)
1.2 Maven 仓库
仓库的本质就是一个目录(文件夹),这个目录被用来存储开发中所有依赖(就是jar包)和插件
Maven仓库分为:
- 本地仓库:自己计算机上的一个目录(用来存储jar包)。
- 中央仓库:由Maven团队维护的全球唯一的。
- 远程仓库(私服):一般由公司团队搭建的私有仓库。
项目引入依赖 jar 包后,查找顺序:本地仓库 -->(远程仓库–>)中央仓库。
2. Maven 安装
下载地址:https://maven.apache.org/download.cgi
Maven安装配置步骤:
- 解压安装
- 配置仓库
- 配置Maven环境变量
1、解压安装
建议解压到没有中文、特殊字符的路径下。
解压缩后的目录结构如下:
- bin目录 : 存放的是可执行命令。(mvn 命令重点关注)
- conf目录 :存放Maven的配置文件。(settings.xml配置文件后期需要修改)
- lib目录 :存放Maven依赖的jar包。(Maven也是使用java开发的,所以它也依赖其他的jar包)
2、配置本地仓库
2.1、在自己计算机上新一个目录(本地仓库,用来存储jar包)
2.2、进入到conf目录下修改settings.xml配置文件
1). 使用超级记事本软件,打开settings.xml文件
2). 复制<localRepository>
标签,粘贴到注释的外面
3). 复制之前新建的用来存储jar包的路径,替换掉<localRepository>
标签体内容
3、配置阿里云私服
由于中央仓库在国外,所以下载jar包速度可能比较慢,而阿里公司提供了一个远程仓库,里面基本也都有开源项目的jar包。
进入到conf目录下修改settings.xml配置文件:
1). 使用超级记事本软件,打开settings.xml文件,定位到160行左右
2). 在<mirrors>
标签下为其添加子标签<mirror>
,内容如下:
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>
</mirror>
注意配置的位置,在
<mirrors> ... </mirrors>
中间添加配置。如下图所示:
只可配置一个
<mirror>
(另一个要注释!) ,不然两个可能发生冲突,导致jar包无法下载
4、配置环境变量
Maven环境变量的配置类似于JDK环境变量配置一样
1). 在系统变量处新建一个变量MAVEN_HOME
- MAVEN_HOME环境变量的值,设置为maven的解压安装目录
2). 在Path中进行配置
- PATH环境变量的值,设置为:%MAVEN_HOME%\bin
3). 打开DOS命令提示符进行验证,出现如图所示表示安装成功
mvn -v
3. IDEA 中集成 Maven
3.1 配置Maven环境
3.1.1 当前工程设置
1、选择 IDEA中 File => Settings => Build,Execution,Deployment => Build Tools => Maven
2、设置IDEA使用本地安装的Maven,并修改配置文件及本地仓库路径
Maven home path :指定当前Maven的安装目录
User settings file :指定当前Maven的settings.xml配置文件的存放路径
Local repository :指定Maven的本地仓库的路径 (如果指定了settings.xml, 这个目录会自动读取出来, 可以不用手动指定)
3、配置工程的编译版本为11
- Maven默认使用的编译版本为5(版本过低)
上述配置的maven环境,只是针对于当前工程的,如果我们再创建一个project,又恢复成默认的配置了。 要解决这个问题, 我们就需要配置全局的maven环境。
3.1.2 全局设置
1、进入到IDEA欢迎页面
- 选择 IDEA中 File => close project
2、打开 All settings , 选择 Build,Execution,Deployment => Build Tools => Maven
3、配置工程的编译版本为11
这里所设置的maven的环境信息,并未指定任何一个project,此时设置的信息就属于全局配置信息。 以后,我们再创建project,默认就是使用我们全局配置的信息。
3.2 Maven项目
3.2.1 创建Maven项目
1、创建一个空项目
new Project => Empty Project => 输入项目名 => Finish
2、创建模块,选择 New Maven,点击 Next
配置 JDK 版本(Module SDK)
3、填写模块名称,坐标信息,点击finish,创建完成
4、在Maven工程下,创建HelloWorld类
Maven项目的目录结构:
5、编写 HelloWorld,并运行
public class HelloWorld {public static void main(String[] args) {System.out.println("Hello Maven ...");}
}
3.2.2 POM配置详解
POM (Project Object Model) :指的是项目对象模型,用来描述当前的maven项目。
- 使用pom.xml文件来实现
pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><!-- POM模型版本 --><modelVersion>4.0.0</modelVersion>
<!-- 当前项目坐标 --><groupId>com.itheima</groupId><artifactId>maven_project1</artifactId><version>1.0-SNAPSHOT</version><!-- 打包方式 --><packaging>jar</packaging></project>
pom文件详解:
-
<project>
:pom文件的根标签,表示当前maven项目 -
<modelVersion>
:声明项目描述遵循哪一个POM模型版本- 虽然模型本身的版本很少改变,但它仍然是必不可少的。目前POM模型版本是4.0.0
-
坐标 :
<groupId>、<artifactId>、<version>
- 定位项目在本地仓库中的位置,由以上三个标签组成一个坐标
-
<packaging>
:maven项目的打包方式,通常设置为jar或war(默认值:jar)
3.2.3 Maven坐标详解
什么是坐标?
- Maven中的坐标是资源的唯一标识, 通过该坐标可以唯一定位资源位置
- 使用坐标来定义项目或引入项目中需要的依赖
Maven坐标主要组成
- groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.heo)
- artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
- version:定义当前项目版本号
如下图就是使用坐标表示一个项目:
- 上面所说的资源可以是插件、依赖、当前项目。
- 我们的项目如果被其他的项目依赖时,也是需要坐标来引入的。
3.3 导入Maven项目
- 方式1:使用Maven面板,快速导入项目
打开IDEA,选择右侧Maven面板,点击 + 号,选中对应项目的pom.xml文件,双击即可
说明:如果没有Maven面板,选择 View => Appearance => Tool Window Bars
- 方式2:使用idea导入模块项目
File => Project Structure => Modules => + => Import Module => 找到要导入工程的 pom.xml