目录
- 1 Maven
- 1.1 Maven简介
- 2 Maven安装配置
- 2.1 下载
- 2.2 配置maven的环境变量
- 2.3 MavenSetting.xml文件配置
- 2.4 检测
- 3 Maven基本使用
- 3.1 Maven常用命令
- 3.2 Maven生命周期
- 3.2.1 default 构建生命周期
- 4 IDEA配置Maven
- 4.1 IDEA配置 Maven 环境
- 4.2 Maven 坐标详解
- 4.3 IDEA 创建 Maven 项目
- 4.4 IDEA 导入 Maven 项目
- 4.5 配置 Maven-Helper 插件
- 5 依赖管理
- 5.1 使用坐标导入 jar 包
- 5.2 使用坐标导入 jar 包 – 快捷方式
- 5.3 使用坐标导入 jar 包 – 自动导入
- 5.2 依赖范围
1 Maven
- Maven是专门用于管理和构建Java项目的工具,它的主要功能有:
- 提供了一套标准化的项目结构
- 提供了一套标准化的构建流程(编译,测试,打包,发布……)
- 提供了一套依赖管理机制
- 标准化的项目结构
- Maven提供了一套标准化的项目结构,所有IDE使用Maven构建的项目结构完全一样,所有IDE创建的Maven项目可以通用
- Maven提供了一套标准化的项目结构,所有IDE使用Maven构建的项目结构完全一样,所有IDE创建的Maven项目可以通用
- 标准化的构建流程
- Maven提供了一套简单的命令来完成项目构建
- Maven提供了一套简单的命令来完成项目构建
- 依赖管理
- 依赖管理其实就是管理你项目所依赖的第三方资源 (jar包、插件…)
- Maven 使用标准的坐标配置来管理各种依赖
- 只需要简单的配置就可以完成依赖管理
- 之前使用jar包流程:
- 官网下载jar包
- 复制jar包到项目
- 将jar包加入工作环境
- 依赖管理其实就是管理你项目所依赖的第三方资源 (jar包、插件…)
1.1 Maven简介
- 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档
- 官网:http://maven.apache.org/
- Maven 模型
- 项目对象模型 (Project Object Model)
- 依赖管理模型(Dependency)
- 插件(Plugin)
Maven仓库分类
- 本地仓库
- 自己计算机上的一个目录
- 中央仓库
- 由Maven团队维护的全球唯一的仓库
- 地址:https://repo1.maven.org/maven2/
- 由Maven团队维护的全球唯一的仓库
- 远程仓库(私服)
- 一般由公司团队搭建的私有仓库
- 当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:
- 如果有,则在项目直接引用;
- 如果没有,则去中央仓库中下载对应的jar包到本地仓库。
- 还可以搭建远程仓库,将来jar包的查找顺序则变为:
- 本地仓库 -> 远程仓库 -> 中央仓库
2 Maven安装配置
2.1 下载
- 在主页面点击Download
- 点击archives
- 最好不要下载使用新版本,我使用的是maven-3.6.3,我们点击页面下方的archives,能进入maven历史版本页面
- 点击要下载的版本
- 点击binaries
- 下载所需要的压缩包
- 解压后的目录
2.2 配置maven的环境变量
2.3 MavenSetting.xml文件配置
- 打开setting.xml文件
- 配置本地Maven仓库
- 大约在55行位置(记得在上面的注释内容下面添加这行代码)加入这一行代码。
- 这行代码的作用:本地maven仓库所在的位置,也可以不添加的,它的默认位置是在c盘,
- 这个仓库存放项目需要的jar包,非常占用内存,所以建议不要放在c盘,而是存放在自定义的位置。
<localRepository>D:/Develop/Maven/localRepo</localRepository>
- 添加国内镜像
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/ </url>
<mirrorOf>central</mirrorOf>
</mirror>
- 设置JDK版本
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
2.4 检测
- 在黑窗口中输入:
- mvn -v
- 出现以下内容即为成功
3 Maven基本使用
3.1 Maven常用命令
命令 | 说明 |
---|---|
compile | 编译 |
clean | 清理 |
test | 测试 |
package | 打包 |
install | 安装 |
3.2 Maven生命周期
- Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件
- Maven 对项目构建的生命周期划分为3套
- clean:清理工作
- default:核心工作,例如编译,测试,打包,安装等
- site:产生报告,发布站点等
3.2.1 default 构建生命周期
周期 | 说明 |
---|---|
validate(校验) | 校验项目是否正确并且所有必要的信息可以完成项目的构建过程。 |
initialize(初始化) | 初始化构建状态,比如设置属性值。 |
generate-sources(生成源代码) | 生成包含在编译阶段中的任何源代码。 |
process-sources(处理源代码) | 处理源代码,比如说,过滤任意值。 |
generate-resources(生成资源文件) | 生成将会包含在项目包中的资源文件。 |
process-resources (处理资源文件) | 复制和处理资源到目标目录,为打包阶段最好准备。 |
compile(编译) | 编译项目的源代码。 |
process-classes(处理类文件) | 处理编译生成的文件,比如说对Java class文件做字节码改善优化。 |
generate-test-sources(生成测试源代码) | 生成包含在编译阶段中的任何测试源代码。 |
process-test-sources(处理测试源代码) | 处理测试源代码,比如说,过滤任意值。 |
generate-test-resources(生成测试资源文件) | 为测试创建资源文件。 |
process-test-resources(处理测试资源文件) | 复制和处理测试资源到目标目录。 |
test-compile(编译测试源码) | 编译测试源代码到测试目标目录. |
process-test-classes(处理测试类文件) | 处理测试源码编译生成的文件。 |
test(测试) | 使用合适的单元测试框架运行测试(Juint是其中之一)。 |
prepare-package(准备打包) | 在实际打包之前,执行任何的必要的操作为打包做准备。 |
package(打包) | 将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件。 |
pre-integration-test(集成测试前) | 在执行集成测试前进行必要的动作。比如说,搭建需要的环境。 |
integration-test(集成测试) | 处理和部署项目到可以运行集成测试环境中。 |
post-integration-test(集成测试后) | 在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境。 |
verify (验证) | 运行任意的检查来验证项目包有效且达到质量标准。 |
install(安装) | 安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖。 |
deploy(部署) | 将最终的项目包复制到远程仓库中与其他开发者和项目共享。 |
4 IDEA配置Maven
4.1 IDEA配置 Maven 环境
4.2 Maven 坐标详解
- 什么是坐标
- Maven 中的坐标是资源的唯一标识
- 使用坐标来定义项目或引入项目中需要的依赖
- Maven 坐标主要组成
- groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)
- artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
- version:定义当前项目版本号
4.3 IDEA 创建 Maven 项目
4.4 IDEA 导入 Maven 项目
选择右侧Maven面板,点击 + 号
选中对应项目的pom.xml文件,双击即可
如果没有Maven面板,选择 View -> Appearance -> Tool Window Bars
4.5 配置 Maven-Helper 插件
此插件可以更好的使用Maven相关命令
在项目上右键即可
5 依赖管理
5.1 使用坐标导入 jar 包
- 在 pom.xml 中编写 < dependencies > 标签
- 在 < dependencies > 标签中 使用 < dependency > 引入坐标
- 定义坐标的 groupId,artifactId,version
- 点击刷新按钮,使坐标生效
5.2 使用坐标导入 jar 包 – 快捷方式
- 在 pom.xml 中 按 alt + insert,选择 Dependency
- 在弹出的面板中搜索对应坐标,然后双击选中对应坐标
- 点击刷新按钮,使坐标生效
5.3 使用坐标导入 jar 包 – 自动导入
- 选择 IDEA中 File --> Settings
- 在弹出的面板中找到 Build Tools
- 选择 Any changes,点击 ok 即可生效
5.2 依赖范围
- 通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用范围:编译环境、测试环境、运行环境
依赖范围 | 编译classpath | 测试classpath | 运行classpath | 例子 |
---|---|---|---|---|
compile | Y | Y | Y | logback |
test | - | Y | - | Junit |
provided | Y | Y | - | servlet-api |
runtime | - | Y | Y | jdbc驱动 |
compile | Y | Y | - | 存储在本地的jar包 |
system | 引入DependencyManagement |
- < scope >默认值:compile