0.Maven的功能
Maven是一个项目构建和管理的工具,提供了管理【构建】、【文档】、【报告】、【依赖】、【发布】、【分发】的方法。可以方便地编译代码、进行依赖管理、管理二进制库等。它可以将项目过程规范化、自动化、高效化,利用其自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等。
1.Maven的核心概念
1.1pom
pom是指project object model,pom.xml文件中包含了项目信息和配置信息。pom是可以继承的,对于一个大型项目或者多个module的情况,子模块的pom需要指定其父模块的pom。
pom文件中各节点的含义如下:
<project>:顶级元素
<modelVersion>:所使用的object model版本
<groupId>:项目创建团体或组织的唯一标识符,通常是域名的倒写
<artifactId>:项目唯一的基地址名
<version>:项目版本,通常能看见类似0.0.1-SHAPSHOT,表示为开发版本
<packaging>:打包方式,如jar,war,ear等,不仅表示项目最终产生何种后缀的文件,也表示build过程使用什么样的lifecycle。
<name>:项目的展现名,在maven生成的文档中使用
<description>:项目的描述信息,在maven生成的文档中使用
<parent>:表示父pom
<properties>:项目属性,设置编码方式、java版本等
<dependencies>:表示依赖,在子结点dependency中添加依赖的groupId、artifactId和version
<build>:表示build配置
1.2artifact
直接翻译是神器、人工品,这里的意思是一个项目将要产生的文件,每个artifact都由groupId:artifactId:version组成的标识符唯一识别。
1.3repositories
用来存储artifact的仓库,仓库分为远程仓库和本地仓库,远程仓库是指远程服务器上用于存储Artifact的仓库,本地仓库是指本机存储Artifact的仓库,对于windows机器本地仓库地址为系统用户的.m2/repository下面。对于需要的依赖,在pom中添加dependency即可,可以在maven的仓库中搜索:http://mvnrepository.com/
1.4build lifecycle
指一个项目build的过程,在IDEA中的Maven Project如图所示
clean:处理项目的清理
validate:验证项目是否正确以及必须的信息是否可用
compile:编译源代码
test:测试编译后的代码,即执行单元测试代码
package:打包编译后的代码,在target目录下生成package文件
verify:验证package是否有效并且达到质量标准
install:安装package到本地仓库,方便其他项目使用
site:处理项目的文档生成
deploy:部署,copy最终的package到远程仓库
参考文献:
http://www.trinea.cn/android/maven/