首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

应用Maven进行项目管理 1 - 基本概念

2012-07-01 
使用Maven进行项目管理 1 - 基本概念本文介绍Maven的基本概念,在下一篇博文使用Maven进行项目管理 2 - 用M

使用Maven进行项目管理 1 - 基本概念
本文介绍Maven的基本概念,在下一篇博文使用Maven进行项目管理 2 - 用Maven管理最简单的Java项目中,我们将应用Maven工具和Maven的构建思想管理一个最简单的Java项目。

什么是Maven

Maven的官方网站上是这样定义的

mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app

这里的archetype即是插件名称,我们可以把插件看做是一组任务 (Goal) 的集合,例如archetype插件包含以下任务

archetype:createarchetype:generatearchetype:create-from-projectarchetype:crawl
任务 (Goal)

Goal指Maven任务,即完成某个具体的工作。例如archetype:create就是任务名称,指从某个原型 (项目模版)创建一个新的项目。

阶段 (Phase)

我们在使用Maven时,如果要对项目打包,会使用以下命令

mvn package


这里package和archetype:create这样的形式有所不同。这里的package就是Maven中的阶段 (Phase)。在项目管理中,我们会经常提到编码阶段、测试阶段、部署阶段等等,对,Maven中阶段(Phase)的概念和这里是差不多的。

阶段(Phase)和任务(Goal)主要有两个区别

粒度不同

阶段(Phase)粒度更大,可以认为一个阶段(Phase)对应一组任务(Goal),例如mvn package会依序执行以下任务

resources:resourcescompiler:compileresources:testResourcescompiler:testCompilesurefire:testjar:jar
独立性不同

阶段(Phase)之间存在依赖关系,每一个阶段(Phase)都是生命周期中的一个环节,执行任何一个阶段(Phase)需要先执行其前置的阶段(Phase)。这点很好理解,就像我们不可能不经过编码阶段就进入测试阶段。而任务(Goal)是独立的,每个任务是可以单独执行的,与其他任务无关。

生命周期 (Lifecycle)

生命周期 (Lifecycle) 和软件开发的生命周期类似,在Maven中,生命周期 (Lifecycle)由一组有序的阶段 (Phase)构成。其中任何一个阶段(Phase)的执行,需要先执行其前置阶段。

小结

Maven是一套项目构建思想 + 实用程序构成通过项目对象模型(POM)描述项目元信息Maven程序本身只是一套插件(Plugin)执行框架,具体功能通过插件(Plugin)完成,插件(Plugin)由一组任务(Goal)构成Maven把项目构建过程看做一个生命周期(Lifecycle),生命周期由若干阶段(Phase)构成,阶段(Phase)必须顺序执行

热点排行