03初识Maven核心概念(上)
1.POM(项目对象模型-Project Object Model)概述http://i.cnblogs.com/EditPosts.aspx?postid=5050993
项目的属性、依赖、构建配置这些信息都被抽象到项目对象模型中,POM主要分为:
项目基本信息(General Project Information)
项目名称、项目官方网站、发起组织以及项目的开发者、共建者列表和许可证信息等
构建环境(Build Environment)
包括在不同的环境激活的profile
POM关系(POM Relationships)
构建设置(Build Settings)
mvn help:effective-pom查看所有实际生效的pom文件
2.插件和目标
mvn archetype:generate
archetype:插件名称
generate: 目标名称
mvn archetype:generate的含义是使Maven执行archetype插件的generate目标
Maven执行插件目标的基本语法是:
pluginId:goalId(插件Id:目标Id)
goalId:是一个工作单元
pluginId:是一个或者多个目标的集合
由此可以看出Maven实际上是一个插件的框架,核心本质上不执行任何的构建任务,所有的任务都是交给插件去完成的,用户可以通过两种方式来调用插件的目标:
1)将插件的目标与生命周期绑定,执行生命周期 例如:mvn package
Maven中项目的生命周期阶段是指项目的构建过程,包含了项目一系列的有序的阶段,每一个阶段就是构建过程中的一个步骤。Maven可以支持许多不同的生命周期,最常用的就是Maven的默认生命周期,在这个生命周期中,最开始的一个阶段是验证项目的基本完整性,最后一个阶段是将一个项目发布成一个产品。
一个简化的项目生命周期阶段如下:
资源文件处理--编译--类文件处理--测试资源处理--测试--打包
2)直接执行插件目标 例如:mvn archetype:generate
常见的Maven插件:
A.maven-archetype-plugins(项目骨架结构插件)
B.maven-dependency-plugin(帮助分析项目依赖)
C.maven-help-plugin(辅助插件)
D.maven-resources-plugin(提供详细的项目结构,独立管理Java代码文件和资源文件)
E.maven-surefire-plugin(用来执行测试单元)
F.jetty-maven-plugin(内置jetty容器,可以通过命令,将项目运行在jetty容器中)
G.maven-enforcer-pliugin(允许创建一系列规则,然后强制遵守)
以上两者的关系:
插件目标可以绑定在证明周期之上,一个生命周期阶段可以绑定多个插件目标,随着Maven生命周期的移动,会自动执行绑定在该阶段的插件目标,每个阶段可以绑定也可以不绑定插件目标,可以绑定一个也可以绑定多个插件目标