目录
1 Maven 概述
Apache Maven 是一个项目管理和构建工具,它基于项目对象模型 (POM) 的概念,通过一小段描述信息来管理项目的构建、报告和文档
Maven 模型:
关于仓库:
Maven 是专门用于管理和构建 Java 项目的工具,它的主要功能有:
- 提供了一套标准化的项目结构
- 提供了一套标准化的构建流程(编译,测试,打包,发布…)
- 提供了一套依赖管理机制
- Maven 提供了一套标准化的项目结构
不同 IDE 之间,项目结构不一样,不通用;Maven 提供了一套标准化的项目结构,所有 IDE 使用 Maven 构建的项目结构完全一样,所有 IDE 创建的 Maven 项目可以通用
2. Maven 提供了一套标准化的构建流程
标准化的构建流程
Maven 提供了一套简单的命令来完成项目构建
- Maven 提供了一套依赖管理机制
依赖管理其实就是管理你项目所依赖的第三方资源 (jar 包、插件… )
以 jar 包为例,之前我们导入 jar 包:
而使用 Maven
Maven 使用标准的坐标配置来管理各种依赖,只需要简单的配置就可以完成依赖管理
2 Maven 安装配置
-
解压
apache-maven-3.6.1.rar
即安装完成 -
配置环境变量
MAVEN_HOME
为安装路径的bin
目录
在 cmd 窗口输入命令:mvn -version
,验证配置成功与否
- 配置本地仓库:修改
conf/settings.xml
中的<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>
3 Maven 基本使用
3.1 Maven 常用命令
首先进入 Maven 项目中(pom.xml
所在的路径),打开 cmd 命令行
mvn compile
:编译- 生成
target
文件夹,存放着字节码文件
- 生成
mvn clean
:清理- 删除
target
文件夹
- 删除
mvn test
:测试- 运行
test
文件下的测试代码
- 运行
mvn package
:打包- 将编译生成的字节码文件打成 jar 包
mvn install
:安装- 将当前项目安装到本地仓库
3.2 Maven 生命周期
Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件
Maven 对项目构建的生命周期划分为 3 套
clean
:清理工作default
:核心工作,例如编译,测试,打包,安装等site
:产生报告,发布站点等
同一生命周期内,执行后边的命令,前边的所有命令会自动执行
4 IDEA 配置 Maven
4.1 IDEA 配置 Maven 环境
-
选择 IDEA 中 File --> Settings
-
搜索 maven
-
设置 IDEA 使用本地安装的 Maven ,并修改配置文件路径
4.2 IDEA 创建 Maven 项目
Maven 坐标详解
坐标:
- Maven 中的坐标是资源的唯一标识
- 使用坐标来定义项目或引入项目中需要的依赖
Maven 坐标主要组成:
groupId
:定义当前 Maven 项目隶属组织名称(通常是域名反写,例如: com.baidu )artifactId
:定义当前 Maven 项目名称(通常是模块名称,例如order-service
、goods-service
)version
:定义当前项目版本号
例如:
IDEA 创建 Maven 项目
- 创建 模块,选择 Maven ,点击 Next
- 填写模块名称,坐标信息,点击 finish ,创建完成
- 编写 HelloWorld ,并运行
IDEA 导入 Maven 项目
- 选择右侧 Maven 面板,点击 + 号
- 选中对应项目的 pom.xml 文件,双击即可
- 如果没有 Maven 面板,选择
View
—>Appearance
—>Tool Window Bars
为了更方便地使用 Maven ,配置 Maven-Helper
插件
安装完成后需要重启 IDEA,才可以生效。
这样,Maven 项目的右键选项卡就会如下图所示
5 依赖管理
5.1 导入依赖
导入依赖的两种方式
- 例如是 mysql ,可以搜索
mysql maven
,一般网页第一个或第二个就是了,可以直接复制自己想要的版本依赖
- 如果要导入的依赖,本地仓库是有的,我们可以
alt
+insert
,选择add dependency…
搜索并选择需要的依赖直接导入
对依赖做出修改之后,总是需要手动刷新,有点麻烦,我们可以设置成自动刷新
只需要做出如下设置:
5.2 依赖范围
通过设置坐标的依赖范围 (scope) ,可以设置 对应 jar 包的作用范围:编译环境、测试环境、运行环境
<scope>
的默认值:compile