qqjianyue代码工

砌java代码
posts - 62, comments - 9, trackbacks - 0, articles - 10
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

maven 概念与实践 phase, goal, plugin

Posted on 2011-09-22 10:01 Qzi 阅读(9237) 评论(0)  编辑  收藏 所属分类: appfuse2 and maven2
参考这篇文章:http://blog.csdn.net/bluishglc/article/details/6632280 
一。Maven的执行方式
maven对构建(build)的过程进行了抽象和定义,这个过程被称为构建的生命周期(lifecycle)。生命周期(lifecycle)由多个阶段(phase)组成,每个阶段(phase)会挂接一到多个goal。goal是maven里定义任务的最小单元,goal分为两类,一类是绑定phase的,就是执行到某个phase,那么这个goal就会触发,另外一类不绑定,就是单独任务,这就相当于ant里的target。
1。以phase来构建
例如:
mvn clean
mvn compile
mvn test
mvn package
表明maven会执行到某个生命周期(lifecycle)的某个阶段(phase)
这个phase以及它前面所有phase绑定的目标(goal)都会执行, 每个phase都会邦定maven默认的goal或者没有goal, 或者自定义的goal。
也可以通过传入参数跳过(skip)某些phase,例如:
mvn install -Dmaven.test.skip=true

1。以goal来构建
这类就是没有绑定phase的goal,但是这类goal却通常会有个执行前提,就是project必须执行到某个phase,
那么执行这个goal,其实也会触发maven执行到前提要求的phase。
例如jetty:run是个非绑定phase的goal,它的前提是test-compile,这个前提是由plugin的代码逻辑制定的

/**
 * @goal run
 * @requiresDependencyResolution runtime
 * @execute phase="test-compile"
 * @description Runs jetty6 directly from a maven project
 */
public class Jetty6RunMojo extends AbstractJettyRunMojo
{
    ...
}
二。Maven lifecycle, phase概览
Maven预设了三个Lifecycle ,各包含了下列Phases.
  1. Clean Lifecycle
    • pre-clean
    • clean
    • post-clean
  2. Default Lifecycle
    • validate
    • initialize
    • generate-sources
    • process-sources
    • generate-resources
    • process-resources
    • compile
    • process-classes
    • generate-test-sources
    • process-test-sources
    • process-test-resources
    • test-compile
    • process-test-classes
    • test
    • prepare-package
    • package
    • pre-integration-test
    • integration-test
    • post-integration-test
    • verify
    • install
    • deploy
  3. Site Lifecycle
    • pre-site
    • site
    • post-site
    • site-deploy

只有注册用户登录后才能发表评论。


网站导航: