Maven工作流程

Maven的设计哲学是Convention over configuration(惯例先于配置)。在设计之初,Maven就确定了三个常见的工作流程,流程固定,流程节点可配置。

总体的架构

Maven的工作流程分三层:lifecycle(流程),phase(节点),goal(任务)。(括号内的内容为我个人理解的翻译为中文的意思,非直译)。lifecycle定义一系列的phase,每一个phase上挂任意个goal(goal由plugin提供)。与工作流相似,maven驱动流程的运行,单个节点可以定制,具体要做些什么,可以是0个,1个,或者多个任务。理论上来讲,lifecycle确定,那么phase就确定了,不能新增或者删除(可以空跑),phase与goal之间是最灵活的,可以定制某个phase,具体可以干什么。

phase概览

maven自己提供三个lifecycle:clean,build,site。它们的pahse分别如下:

clean, build, site的lifecyle定义

phase与goal如何关联

phase与goal的关联,有两条途径。

  • package的内建定义 
    maven定义了好几种package类别,每一种package都自己定义了在在哪一个phase上关联哪些goal的信息。常见的package有pom,jar,war,ear,bundle等。也可以自己定义新的package(通过插件机制)。
  • 自定义 
    通过插件的execution配置项,可以配置把该plugin的哪一个goal配置到哪一个phase上。比如下面的例子。

自定义phase和goal关联的例子

结语

我们下maven命令的时候,一般下在phase上。lifecyle可否自定义,我的理解应该可以,不过一般是不大需要的,加新的package一般也只是mapping phase和goal。

友情链接

书法和国画爱好者请进

猜你喜欢

转载自blog.csdn.net/qq_36838191/article/details/82346496