maven的pluginphase和goal区别

Posted 安凯刚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven的pluginphase和goal区别相关的知识,希望对你有一定的参考价值。

引自:http://www.blogjava.net/jianyue/archive/2011/09/22/359233.html

 

一。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的代码逻辑制定的

二。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














以上是关于maven的pluginphase和goal区别的主要内容,如果未能解决你的问题,请参考以下文章

什么是 Maven 目标和阶段,它们有什么区别?

maven install时报错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test(示例

Maven多模块项目单独编译子模块项目时报错:Failed to execute goal on project

理解maven命令packageinstalldeploy的联系与区别

maven命令packageinstalldeploy

spring-boot-maven插件repackage(goal)的那些事