maven的用途:

maven是一个项目的构建和管理以及编译发布的工具。它可以将项目过程规范化、自动化、高效化。利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。

 

maven的核心概念介绍

1、pom.xml,该文件是maven的工作基础,执行任务时maven会去项目根目录下读取pom.xml获得需要的配置信息。pom文件包含了项目的基本信息、生成信息、项目依赖信息、插件等。pom是可以继承的,通常对于一个大型的项目或是多个module的情况,子模块的pom需要指定父模块的pom,pom文件中节点含义如下:

  • project: pom文件的顶级元素
  • modelVersion: 所使用的object model版本,为了确保稳定的使用,这个元素是强制性的。除非maven开发者升级模板,否则不需要修改
  • groupId: 是项目创建团体或组织的唯一标志符,通常是域名倒写,如groupId org.apache.maven.plugins就是为所有maven插件预留的
  • artifactId: 是项目artifact唯一的基地址名
  • packaging: artifact打包的方式,如jar、war、ear等等。默认为jar。这个不仅表示项目最终产生何种后缀的文件,也表示build过程使用什么样的lifecycle。
  • version: artifact的版本,通常能看见为类似0.0.1-SNAPSHOT,其中SNAPSHOT表示项目开发中,为开发版本
  • name: 表示项目的展现名,在maven生成的文档中使用
  • url:表示项目的地址,在maven生成的文档中使用
  • description: 表示项目的描述,在maven生成的文档中使用
  • dependencies: 表示依赖,在子节点dependencies中添加具体依赖的groupId artifactId和version
  • repositories:仓库信息
  • build :表示build配置
  • parent: 表示父pom

2、Artifact:

groupId:artifactId:version唯一确定了一个artifact

artifact是一个项目编译后产生的文件,可以是jar文件,源文件,二进制文件,war文件,甚至是pom文件。需要被使用(依赖)的artifact都要放在仓库(见Repository)中

3、Repositories:

Repositories是用来存储Artifact的,有自己的artifact也有外部的artifact,项目中需要哪个artifact就在我们项目对应的pom文件中添加dependencies节点,编译代码就会根据我们添加的依赖去下载相应的artifact。

仓库分为本地仓库和远程仓库,远程仓库是指远程服务器上用于存储Artifact的仓库,本地仓库是指本机存储Artifact的仓库,对于windows机器本地仓库地址为系统用户的.m2/repository下面。

远程仓库:可以在maven的仓库中搜索:http://mvnrepository.com/,当然每个公司也都有自己的maven库。

4、Dependencies:

pom文件的maven仓库与setting的maven仓库 maven中pom文件的作用_ci

上图是添加对junit的依赖。

pom文件的maven仓库与setting的maven仓库 maven中pom文件的作用_远程仓库_02

对比上面的dependencies节点配置我们可以看出在本地仓库中是有一个artifact与之唯一对应的。

1:本地仓库的路径  2:groupid  3:artifactid  4:version 最后定为到的文件(artifact)是 

pom文件的maven仓库与setting的maven仓库 maven中pom文件的作用_远程仓库_03

5、Lifecycle  

  • clear:执行对已编译文件的清除
  • validate: 验证项目是否正确以及必须的信息是否可用
  • compile :编译源代码
  • test: 测试编译后的代码,即执行单元测试代码
  • package: 打包编译后的代码,在target目录下生成package文件
  • verify: 检验package是否有效并且达到质量标准
  • install :安装package到本地仓库,方便本地其它项目使用
  • site:生成site站点
  • deploy :部署,拷贝最终的package到远程仓库和替他开发这或项目共享,在集成或发布环境完成

以上是maven对一个项目整个生命周期的管理

6、创建maven项目

pom文件的maven仓库与setting的maven仓库 maven中pom文件的作用_远程仓库_04

pom文件的maven仓库与setting的maven仓库 maven中pom文件的作用_java_05

 

上图是maven的一个标准工程

pom文件的maven仓库与setting的maven仓库 maven中pom文件的作用_ci_06

创建项目的时候我们选择Maven 然后从右边的列表中选择一种maven模板就可以生成一个maven项目。