1.Maven的目录结构
Maven默认约定了一套目录结构,在通过Maven创建了项目以后,项目的目录结构如下展示
2.Maven的仓库
在Maven中可以将Maven理解为一个位置,一个撞门存放项目依赖的第三方库的位置
2.1Maven仓库分类
maven仓库可以分为:本地仓库和远程仓库
2.1.1本地仓库
本地仓库相当于一个缓存,在电脑上的一个文件,可以在电脑上设置这个文件夹路径。工程第一次使用jar包时,会在远程仓库下载到本地仓库,第二次使用就不会去远程仓库下载了,直接在本地仓库查找,如果找不到才会去远程仓库下载。
默认情况下每个用户会在自己的用户目录有一个路径名为.m2/respository/的仓库目录
2.1.2远程仓库
远程仓库又分为中央仓库和私服
2.1.2.1中央仓库
中央仓库是由Maven团队维护的一个存放了世界上大多数流行的开源软件的jar包,是Maven的默认仓库。
查看Maven仓库的内容的网址:http://search.Maven.org/#browse
2.1.3私服
私服是另一个特殊的远程仓库,为了节省带宽和时间,在局域网内架设的一个私有仓库服务器,用其代理所有外部的远程仓库,内部的项目还可以部署到私服上供其他项目使用,除了中央仓库和私服外还有很多其他的公开的远程仓库。
3.配置本地仓库*****
当运行Maven的命令时,会将指定的依赖下载到指定的路径下
首先
先创建一个自己的文件夹
之后在setting.xml下配置
指定你自己的仓库的位置
4.配置远程仓库镜像
由于去Maven的本地仓库下载速度较慢(外网)所以在这里配置了阿里云的远程仓库
修改 Maven 根目录下的 conf 文件夹中的 settings.xml 文件,在 mirrors 节点上,添加内容如下:
<!-- 配置阿里云镜像 -->
<mirror>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<url>http://Maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
<!-- 其中各个标签的含义是:
id:当前镜像的唯一标识
mirrorOf:将哪个远程仓库当做中央仓库镜像,中央仓库的id是central,所以将阿里云的Maven仓库
设置为中央仓库镜像时,其值必须设置为central
name:为当前的中央仓库镜像起一个名字,便于开发者阅读
url:阿里云Maven仓库的地址
-->
5.Maven的核心配件pom.xml
POM是Maven的基本工作单元,是一个xml文件,包含了项目的基本信息,用于描述项目如何构建,声明依赖等
执行任务时,Maven会读取POM,获取所需的配置信息,然后执行目标
<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">
<!-- Maven模型的版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如
com.companyname.project-group,Maven会将该项目打成的jar包放本地路
径:/com/companyname/project-group -->
<groupId>com.kkb.Maven</groupId>
<!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
<artifactId>HelloWorld</artifactId>
<!-- 当前项目版本号:同一个项目开发过程中可以发布多个版本,此处标示0.0.1版 -->
<!-- 当前项目版本号:每个工程发布后可以发布多个版本,依赖时调取不同的版本,使用不同的版本号
当前项目版本号,snapshot为快照版本即非正式版本,release为正式发布版本
-->
<version>0.0.1-snapshot</version>
<!--打包类型,一般有jar、war、pom等-->
<packaging>jar</packaging>
<!-- 名称:可省略 ,常用于 Maven 生成的文档。-->
<name>Hello</name>
<!--项目描述:可省略,常用于 Maven 生成的文档-->
<description > </description>
<!-- 项目依赖构件配置,配置项目依赖构件的坐标 -->
<dependencies>
<!-- 依赖设置 ,可以有多个dependency节点-->
<dependency>
<!-- 依赖组织名称 -->
<groupId>junit</groupId>
<!-- 依赖项目名称 -->
<artifactId>junit</artifactId>
<!-- 依赖版本名称 -->
<version>4.12</version>
<!-- 依赖范围:test包下依赖该设置 -->
<scope>test</scope>
</dependency>
</dependencies>
<!-- 项目构建配置,配置编译、运行插件等。-->
<build>......</build>
</project>
6.Maven的坐标
Maven的坐标是用来定位唯一的确定的jar包
6.1Maven坐标的组成
groupId:当前Maven项目组织名称
artifactId:项目名称
version:当前项目的当前版本或者是所依赖的jar包的版本
7.Maven的生命周期
7.1什么是生命周期
Maven的生命周期就是对所有的构建过程的抽象与统一。包括:清理、初始化、编译、打包、测试、部署等几乎所有构件步骤。生命周期可以理解为构建工程的步骤。
7.2Maven的三大生命周期
Maven的三套相互独立的生命周期,分别是clean、default、site。
clean Lifecycle: 在进行真正的构建之前进行一些清理工作。 mvn clean
default Lifecycle: 构建的核心部分,编译,测试,打包,部署等等。
site Lifecycle: 生成项目报告,站点,发布站点。
7.3clean生命周期
clean是清理项目。
每个生命周期都由一组阶段组成。例如clean生命周期由以下三个阶段组成
包含3个阶段:
1.pre-clean 执行一些清理前需要完成的工作
2.clean 清理上一次构建过程中生成的文件,比如编译后的class文件等
3.post-clean 执行一些清理后需要完成的工作
7.4default生命周期-构建项目
所有生命周期中最核心的部分。绝大部分工作都发生在这个生命周期。
如下default所有的阶段
注:当执行某一阶段时,之前的所有阶段都会执行
7.5site生命周期-生成项目站点
目的:建立和发布项目站点
pre-site 执行一些在生成项目站点之前需要完成的工作.
site 生成项目站点文档
post-site 执行一些在生成项目站点之后需要完成的工作.
site-deploy 将生成的项目站点发布到服务器上