Maven
Maven 是专门用于管理和构建 Java 项目的工具,主要功能有:
- 提供一套标准化的项目结构
- 提供一套标准化的构建流程(编译,测试,打包,发布…)
- 提供了一套依赖管理机制
提供标准化的项目结构:
Maven 提供了一套标准化的项目结构,所有 IDE 使用 Maven 构建的项目结构完全一样,所有IDE 的 Maven 项目通用。
提供标准化构建流程:
Maven 提供了一套简易的命令来完成项目构建,如:Compile 命令用来编译 Maven 项目,Package 命令用来将 Maven 项目打包为 jar 包
提供依赖管理机制:
传统的方式为:
- 导入 jar 包
- 复制 jar 包到项目
- 将 jar 包加入工作环境
Maven 方式,只需要写如下配置代码(xml):
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
简介
Apache Maven 是一个项目管理和构建 工具,基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档
官网:Maven
Maven 作用
- 标准化的项目结构
- 标准化的构建流程
- 方便的依赖管理
Maven 模型
- 项目对象模型(Project Object Model)
- 依赖管理模型(Dependency)
- 插件(Plugin)
仓库分类
- 本地仓库:自己计算机上的目录
- 中央仓库:由 Maven 团队维护的全球唯一的仓库
- 地址:中央仓库
- 远程仓库(私服):一般由公司团队搭建的私有仓库
过程
- 当项目中使用坐标引入依赖 jar 包后,首先会查找本地仓库中是否由对应的 jar 包
- 如果有,则在项目中直接引用;
- 否则,则去中央仓库中下载对应的 jar 包到本地仓库
- 还可以搭建远程仓库,将来 jar 包的查找顺序变为:
- 本地仓库 → 远程仓库 → 中央仓库
Maven 安装和配置
-
解压 apache-maven-3.6.1.rar 即安装完成
-
配置环境变量
MAVEN-HOME
为安装目录的 bin 目录
添加 Path 变量:
%MAVEN_HOME%\bin
-
配置本地仓库:修改
conf/settings.xml
的<localRepository>
为一个指定目录<localRepository>D:\Program Files\apache-maven-3.8.6\repo</localRepository>
-
配置阿里云私服:修改
conf/settings.xml
中的<mirrors>
标签,为其添加如下子标签:<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> <mirrorOf>central</mirrorOf> </mirror>
Maven基本使用
命令
- 编译(Compile):
mvn compile
,编译 Maven 项目 - 清理(Clean):
mvn clean
,清理编译后的 Maven 项目,回归原始状态 - 打包:
mvn package
,将 Maven 项目打包成 jar 包 - 测试:
mvn test
,运行此 Maven 项目的 test 类 - 安装:
mvn install
,将打包后的Maven项目 jar 包安装到本地仓库
Maven 生命周期
- Clean:清理工作
- default:核心工作,如编译、测试、打包、安装等
- site:产生报告,发布站点
同一生命周期内,执行后边的命令,前边的所有命令会自动执行
IDEA 配置 Maven
IDEA 配置 Maven 环境
- 选择 IDEA 中 file->Settings
- 搜索 Maven
- 设置 IDEA 使用本地安装的 Maven,并修改配置文件路径
Maven坐标
坐标:Maven中的坐标是 资源的唯一标识,使用坐标来定义项目或引入项目中需要而依赖
Maven 坐标主要组成:
- groupId:定义当前 Maven 项目隶属组织名称(通常是域名反写,例如:com.alibaba)
- artifactId:定义当前 Maven 项目名称(通常是模块名称,例如:commons-io)
- version:定义当前项目的版本号
IDEA 创建步骤
- 创建模块,选择 Maven
- 填写模块名称,坐标信息(groupId、ArtifactId),点击 Create,创建完成
IDEA 导入 Maven 项目
- 选择右侧 Maven 面板,点击 + 号
- 选中对应项目的
pom.xml
文件
配置 Maven-helper 插件
使用 Maven面板的 lifecycle:双击对应的命令即可执行
安装 Maven-helper 插件,重启 IDEA 即可。
依赖管理
基本步骤:
- 在
pom.xml
中编写<dependencies>
标签 - 在
<dependencies>
标签中使用<dependency>
标签引入坐标 - 定义坐标的 groupId、artifactId、version
- 点击刷新按钮,使坐标生效
配置自动改变:
依赖范围:
通过设置坐标的依赖范围(scope):可以设置对应 jar 包的作用范围:编译环境、测试环境、运行环境
<scope>
的默认值为:compile
Example:
mysql 驱动在运行时才会使用,java 官方为其定义了接口,编译时根本不需要使用此驱动 jar 包,所以可以设置为 runtime。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
<scope>runtime</scope>
</dependency>
java 官方为其定义了接口,编译时根本不需要使用此驱动 jar 包,所以可以设置为 runtime。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
<scope>runtime</scope>
</dependency>
总结
Maven 是一个非常好用的工具,用于快速构建项目,不用去下载项目中以来的众多 jar 包,仅仅使用一个坐标导入即可,并且配置了 aliyun 镜像仓库之后,获取依赖 jar 包的速度非常快,非常值得使用。