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:
上图是添加对junit的依赖。
对比上面的dependencies节点配置我们可以看出在本地仓库中是有一个artifact与之唯一对应的。
1:本地仓库的路径 2:groupid 3:artifactid 4:version 最后定为到的文件(artifact)是
5、Lifecycle
- clear:执行对已编译文件的清除
- validate: 验证项目是否正确以及必须的信息是否可用
- compile :编译源代码
- test: 测试编译后的代码,即执行单元测试代码
- package: 打包编译后的代码,在target目录下生成package文件
- verify: 检验package是否有效并且达到质量标准
- install :安装package到本地仓库,方便本地其它项目使用
- site:生成site站点
- deploy :部署,拷贝最终的package到远程仓库和替他开发这或项目共享,在集成或发布环境完成
以上是maven对一个项目整个生命周期的管理
6、创建maven项目
上图是maven的一个标准工程
创建项目的时候我们选择Maven 然后从右边的列表中选择一种maven模板就可以生成一个maven项目。