首先,maven是一个项目管理和综合工具,它能提供给开发人员一个完成的生命周期框架。它使用标准的目录结构和默认构建生命周期。
目录结构:
maven提供给了我们一个标准的目录结构如下
这种目录结构能让我们很方便的在对应的位置找到对应的文件。而且秩序将文件防盗对应的位置,maven就可以帮助我们做完其它的事情。
pom简介:
pom.xml放在项目的根目录下,它描述了项目的基本信息,组织信息,依赖关系等等。
简单介绍几个基本内容
如图,其中groupID,artifactID,version合起来就是这个项目的坐标,它是唯一的。
依赖:
如上图所示,该项目可以有许多依赖项目,这些依赖项目可以是自己的项目,也可以使别人开发的项目,这里依赖了servlet的api作为例子。
多项目,继承:
父节点
属性:
上图配置了一个spring.version和一个jdk.version,这样的好处是当多处需要使用这些属性的时候,可以用${property}来直接引用,而不需要重复添加这个属性(个人理解类似于全局变量)
pom继承:当子项目很多时,很容易出现一些问题,比如依赖版本不一致等等,这个时候可以使用pom中的继承,与面向对象中的继承类似,它可以从父pom中继承后重写或者进行新的增加,可继承项有:
坐标属性,依赖配置,插件配置,一般性信息(如开发者信息)等等。
对于pom而言,maven中几乎所有的项目的pom都是从super pom继承而来,super pom定义了一组默认设置:
默认的文件位置,默认的插件配置,默认的中央仓库配置等等。
pom多模块构建:如图
即使用继承又使用组合。
仓库:
仓库是用于存储maven所有项目共享的一个构件空间。
分类:本地仓库,远程仓库。
本地用作缓存。
远程仓库有很多种,比如中央仓库和一些其它的公共仓库,私服等。当本地仓库没有找到所配置的依赖时,maven会查找远程仓库并将其下载到本地仓库。
构建生命周期简介:
maven有三套独立的生命周期。
clean有以下三个阶段组成:
pre-clean:预处理
clean:移除上一次构建的文件
post-clean:执行一些clean之后的工作
defeat默认的生命周期有23个阶段:(简介几个常用的)
validate:验证项目是否正确,必要信息是否缺少
process-resources:将一些必要的资源文件复制,为以后打包做准备
compile:编译
test:对代码进行单元测试
package:打包
install:将项目安装到本地仓库
deploy(默认生命周期的最后一个阶段):将我们的包上传到远程仓库
site有以下4个阶段:主要用于生成一些文档等等
pre-site
site
post-site
site-deploy
maven是一个插件式的架构,它由一个很小的引擎加上一大堆插件构成的,所有的插件也是maven构件的一部分,也是由maven仓库管理的