Maven使用教程
1、什么是Maven?
如今我们构建一个项目需要用到很多第三方的类库,如写一个使用Spring的Web项目就需要引入大量的jar包。一个项目Jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一个Jar包往往又会引用其他Jar包,缺少任何一个Jar包都会导致项目编译失败。
以往开发项目时,程序员往往需要花较多的精力在引用Jar包搭建项目环境上,而这一项工作尤为艰难,少一个Jar包、多一个Jar包往往会报一些让人摸不着头脑的异常。
而Maven就是一款帮助程序员构建项目的工具,我们只需要告诉Maven需要哪些Jar 包,它会帮助我们下载所有的Jar,极大提升开发效率。是一个项目管理工具。
2、下载安装Maven
在Maven的官网即可下载,根据不同系统选择下载,点击访问Apache Maven。
1、环境配置
- 添加M2_HOME:对应Maven的解压目录即可。
- 添加MAVEN_HOME:对应maven的bin目录
- 编辑Path环境变量:path = %M2_HOME%\bin
测试:在cmd窗口输入 mvn -v 查看
显示如下即配置成功:
2、修改配置文件
通常我们需要修改解压目录下 conf/settings.xml 文件,这样可以更好的适合我们的使用。
注:所有的修改一定要在注释标签外面,不然修改无效。Maven很多标签都是给的例子,都是注释掉的。
2.1、添加国内镜像源
由于国外的镜像资源较慢,所以我们更换为国内的镜像源,这里使用阿里云的镜像源。
更改settings.xml文件下的< mirrors>标签
//阿里云镜像
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
2.2、本地仓库位置修改
Maven仓库用来存放Maven管理的所有Jar包。
在 < localRepository>标签内添加自己的本地位置路径:
<!--配置本地仓库 -->
<localRepository>D:\Maven\apache-maven-3.6.3\maven-repository</localRepository>
Maven基本命令
-
-v:查询Maven版本:本命令用于检查maven是否安装成功。
Maven安装完成之后,在命令行输入mvn -v,若出现maven信息,则说明安装成功。 -
compile:编译
将java源文件编译成class文件 -
test:测试项目
执行test目录下的测试用例 -
package:打包
将项目打成jar包 -
clean:删除target文件夹
-
install:安装
3、IDEA中使用Maven
1、IDEA下配置Maven
打开Setting设置,找到Maven设置
1:此处修改为自己解压的Maven目录
2:勾选Override,修改为自己目录下的settings.xml目录
3:修改为自己的本地仓库地址:就是上面修改的本地仓库的位置
2、创建Maven项目
创建一个Maven项目:
填写项目名称:
选择Maven文件地址和仓库:
如果在IDEA配置了Maven,就会默认显示设置内容,就不用填写。
Maven的目录文件结构:
maven工具栏项目结构:
4、Maven名词解释
1、POM
Maven项目对象模型(POM-Project Object Model),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。具体下面在细说。
2、坐标
groupId , artifactId , version 三个元素是项目的坐标,唯一的标识这个项目。
-
groupId 项目所在组,一般是组织或公司
-
artifactId 是当前项目在组中的唯一ID;
-
version 表示版本,SNAPSHOT表示快照,表示此项目还在开发中,不稳定。
groupId 和实际项目不一定是一一对应的,maven 有模块的概念,例如 spring-core, spring-context…;
groupId 也不应该只对应公司或组织名,建议具体到项目名,因为公司或者组织下有多个项目,
而artifactId只能代表模块名。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
3、资源库
本地资源库:用来存储所有项目的依赖关系(插件jar和其他文件)。
默认的文件夹是“.m2”目录 Windows系统 – C:\Documents and Settings{your-username}.m2
中央存储库:当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载。
首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源,如果没有找到,然后把它会从默认的 Maven 中下载。
5、在IDEA配置Tomcat
6、POM文件
pom.xml 是Maven的核心配置文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。
执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。
POM 中可以指定以下配置:
- 项目依赖
- 插件
- 执行目标
- 项目构建 profile
- 项目版本
- 项目开发者列表
- 相关邮件列表信息
1.project下的子元素
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,maven会将该项目打成的jar包放本地路径:/com/companyname/project-group -->
<groupId>com.companyname.project-group</groupId>
<!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
<artifactId>project</artifactId>
<!-- 版本号 -->
<version>1.0</version>
<!--打包方式,没有定义packaging时默认jar-->
<packaging>jar</packaging>
<!--项目构件的文件名与坐标是相对应的,一般规则:
artifactId-version[-classfier-].packaging
强调:packaging并非一定与构件扩展名一致,例:
<packaging>maven-plugin</packaging>的构件扩展名为jar -->
<!--项目依赖配置,可以包含一个或者多个<dependency>元素-->
<dependencies>
<!--每个依赖的具体配置,可以拥有多个依赖-->
<dependency></dependency>
</dependencies>
</project>
2. < dependencies>元素,依赖的配置:
<!--项目依赖配置,可以包含一个或者多个<dependency>元素-->
<dependencies>
<!--每个依赖的具体配置-->
<dependency>
<!--groupId,artifactId,version基础依赖坐标-->
<groupId> ...</groupId>
<artifactId> ...</artifactId>
<version> ...</version>
<!--依赖的类型,对应于项目坐标中的packaging,一般不需要声明,默认jar-->
<type>jar</type>
<!--依赖范围-->
<scope>test</scope>
<!--标记依赖是否可选,默认false-->
<optional>false</optional>
<!---->
<systemPath>{basedir}\src\lib\</systemPath>
<!--用于排除传递性依赖-->
<exclusions>
<!--要排除的具体依赖-->
<exclusion>
<artifactId> ...</artifactId>
<groupId> ...</groupId>
</exclusion>
.
.
</exclusions>
</dependency>
</dependencies>