简单概述

一款规范化、自动化构建Java项目的构建工具,可用于项目构建、依赖模块管理以及报告生成和文档生成等,因此其好处也就不言而喻了,避免人为执行构建导致的错误,使效率更高。

工作原理

工作流程大致如下:读取pom.xml > 下载依赖项 > 执行构建过程/阶段/目标 > 执行插件。

POM文件:核心配置文件,Maven的所有工作都是围绕POM文件(项目对象模型)为中心的,根据pom.xml

的配置执行相应的操作。

下载依赖项:根据pom.xml中的依赖项配置以及setting.xml中配置的远程仓库地址下载依赖包到本地仓库,

如果本地仓库没有依赖项的包才会下载。

执行构建:Maven中有一个概念叫做构建生命周期,生命周期包括三个阶段:

1.项目构建之前的清理环节(clean lifecycle);

2.项目编译和打包环节(default lifecycle);

3.项目报告、站点信息、发布环节(site lifecycle);

Maven入门基础知识 - 图1

不同的生命周期可以嵌套使用,使用者可以根据自身需要进行组合,之后章节会对这个部分再进行详细说明并提供一些常用的组合构建命令。

执行插件:

其他说明:

1.因为Maven的远程仓库在国外,所以在项目实际开发中,一般都会使用国内的镜像仓库,比如阿里的镜像仓库,清华的镜像仓库等等。

2.有一些互联网公司,会有自己的私有仓库,除了做镜像,还会将公司内部的业务包,放到私有仓库中供不同项目做日常开发工作使用,比如公司中台的一些中间件等。

安装部署

/补充安装部署方式/

创建工程

创建完Maven工程后,查看项目下的目录的文件结构:

├── pom.xml(核心配置文件)

├── src

│ ├── main

│ │ ├── java(存放业务代码)

│ │ └── resources(存放业务配置文件)

│ └── test

│ └── java(存放测试代码)

├── target(编译后的业务代码)

接下来就针对Maven中最重要最核心的配置方式进行说明。

XML文件

settings

全局配置文件,重要配置选项有:

:本地仓库路径

:远程仓库地址

:是否开启离线模式,如果长时间不需要联网操作可使用

:配置远程仓库服务器地址以及登陆信息

:用于多仓库情况的配置

pom

:项目ID,当前项目和其他项目的唯一标志

:组件ID,当前项目中的子应用或者子组件的唯一标志

:版本号,随迭代开发更新的用来标志版本信息,格式:主版本号.小版本号.阶段版本号.字母版本号,主版本号更新代表有重大功能新增和修改,小版本号更新代表小版本小功能新增和修改,阶段版本号项目中对BUG的修复和完善,字母版本ALPHA(开发中版本)、BETA(还有一些问题的公测版本)、RC(候选版本)、RELEASE/R/GA版本(稳定版本)、FINAL(最后版本)

以上三个配置统一被命名为Maven的GAV坐标。

:指定打包格式,可以打包成war包或者jar包。

:自定义变量,变量定义后可以使用的范围是?

:配置不同环境下进行不同操作的配置入口

:项目所以依赖的第三方包

对于配置文件中的配置项,从个人角度认为只需要记住一些常用的配置即可,如果需要用到其他,查询样例文件获取即可,样例文件会在文末提供。

常用命令

使用场景 具体命令信息 命令作用
项目构建 mvn —version 查看当前Maven版本信息
mvn archetype:generate
**
项目清理/编译/打包**
mvn clean 清理target目录下编译后的文件
mvn compile 编译项目,编译后的文件会生成在target目录下
mvn package 打包命令,把项目打包成jar包或者war包


项目运行/测试/发布
mvn test 自动执行test目录中的测试用例,并生成测试报告
mvn site 用于生成报表数据命令
mvn dependency:tree 查看当前依赖树
mvn install 把打好的包放到我们的本地仓库中,供其他项目使用
mvn deploy 把打好的包放到私有仓库中

参考资料

https://www.qikegu.com/docs/2472(文本课程,也比较通俗易懂,可以先大概看下,然后看下面的课程)

https://www.imooc.com/learn/1282(入门可以看看这个视频课程,讲的不错,还提供了各种样例文件)