来源:http://www.cnblogs.com/holbrook/archive/2012/12/24/2830519.html
1.对于maven来说,一个软件工程的唯一标识是由开发者(groupId)、生成物(artifactId)、版本(version) 共同决定的。每个工程都有一个打包类型,可以是jar, war, ear 或 pom。打包类型决定了工程最终产物的类型。 其中pom类型用于构件多模块工程。
2.工程之间有两种关系:依赖和聚合。
由于依赖关系的传递性可能会导致依赖的版本、scope等发生冲突,maven提供了仲裁机制,同时也 允许自己通过配置进行依赖管理。
聚合关系通过在子工程中指定一个pom类型的project作为父project来定义。3.maven内置了三个生命周期,并为每个生命周期内置了一些阶段。
下面列举出maven内置的生命周期及主要的阶段:
- default:构建(Build)
- validate:验证项目是否正确,所有必需的信息是否可用。
- compile:编译项目中的代码。
- test:用相关的单元测试框架测试编译后的代码,这些运行的测试并不会随项目打包和布署。
- package:将编译后的代码打包成相应的格式文件,如jar包。
- integration-test: 如果需要在一个综合环境中运行我们的测试,这个阶段将会运行和布署项目到该环境中。
- verify: 检查项目的包是否正确和符合要求。
- install:将包安装到本地maven仓库,可以让其他项目作为依赖使用该包。
- deploy:将包发布到远程的maven仓库,并提供给其他开发者使用。
- clean:清理
- pre-clean 准备清理
- clean 执行清理工作
- post-clean 执行清理后的后续工作
- site:生成项目文档和站点
- pre-site 准备生成
- site 生成项目站点和文档
- post-site 执行生成文档后的后续工作
- site-deploy 发布项目文档
概念 | 说明 |
---|---|
LifeCycle | 生命周期,maven内置default,sie,clean三个生命周期 |
Phase | 阶段,每个生命周期有不同的阶段 |
Plugin | 插件,实现实际的构建功能 |
Goal | 一个插件可以实现多个goal,goal具备具体的功能 |
Execution | 通过配置,决定在某个Phase执行哪些Goal |
Project | maven管理的目标:软件工程,小的工程可以聚合成大工程 |
PackageType | 为了便于管理工程,按照构建目标区分成不同的工程类型,如jar,war,ear等 |
Dependency | 依赖,project之间存在依赖关系 |
DependencyScope | maven对依赖定义了不同的作用范围 |
Management | 可以配置一个工程如何管理依赖关系 |
Repository | 仓库,存放包,分为本地库和远程库 |
Build | 构建的动作。使用maven管理工程,主要是指定将project构建到某个phase |