一、Maven介绍
maven是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性利用maven自身及其插件还可以获得代码检查报告、 单元测试覆盖率、实现持续集成等等。
Maven官网:https://www.apache.org
Maven优势:
-
一个项目就是一个工程
如果项目非常庞大,就不适合使用 package 来划分模块,最好是每个模块对应一个工程,利于分工协作,而借助于 maven 就可以将项目拆分成多个工程 -
项目中使用 jar 包,需要重复复制和粘贴
同样的 Jar 包可能会重复的出现在不同的项目工程中,需要做重复的复制粘贴的工作。借助于 maven,可以将 jar 包保存在本地仓库中,不管在哪个项目,只要引用即可。 -
jar 包需要额外下载
而借助于 maven,可以使用统一的方式下载 -
jar 包版本不一致的风险
不同的项目在使用 jar 包的时候,有可能会导致各个项目的 jar 包版本不一致。借助于 maven,所有的 jar 包都在本地仓库中,所有的项目都使用仓库的一份 jar 包。 -
一个 jar 包依赖的其他 jar 包还需要手动引入
如 commons-fileupload.jar 依赖于 commons-io.jar,手动引入极大的浪费时间成本,也极大的增加了学习成本,而借助于 maven,就可以做到自动的将依赖的 jar 包导入进来。
二、Maven常用命令
-
mvn clean
清除项目下的target目录以及目录下的文件。(target目录下的文件是编译文件和项目包文件等) -
mvn compile
对maven项目src/main/java目录下的.java文件进行编译,编译好的.class文件放在target目录下。 -
mvn test
对maven项目src/main/java和src/test/java目录下的.java文件进行编译,编译好的.class文件放在target目录下。 -
mvn package
对maven项目src/main/java和src/test/java目录下的.java文件进行编译,编译好的.class文件放在target目录下。而且还会生成项目的jar包或war包(生成jar包还是war包要看自己在pom.xml文件中的配置)。 -
mvn install
对maven项目src/main/java和src/test/java目录下的.java文件进行编译,编译好的.class文件放在target目录下。而且还会生成项目的jar包或war包(生成jar包还是war包要看自己在pom.xml文件中的配置)。并且还会包jar包或war包添加到本地maven仓库中去。
三、pom.xml配置文件的作用
POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。
执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。
POM 中可以指定以下配置:
- 项目依赖
- 插件
- 执行目标
- 项目构建 profile
- 项目版本
- 项目开发者列表
- 相关邮件列表信息
具体学习可参考:https://www.runoob.com/maven/maven-pom.html
四、Maven的坐标中的G,A,V作用
- 数学中的坐标
在平面上,使用 X 、Y 两个向量可以唯一的定位平面中的任何一个点
在空间中,使用 X、Y、Z 三个向量可以唯一的定位空间中的任意一个点 - Maven中的坐标
俗称 GAV:使用下面三个向量子仓库中唯一定位一个 Maven 工程
groupId:
项目名称,是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构,一般为公司或组织域名倒序 。
artifactId:
模块名称,就是模块的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
version:
就是当前项目的版本
在pom.xml文件中,如下图格式: