maven 概念與實(shí)踐 phase, goal, plugin
Posted on 2011-09-22 10:01 Qzi 閱讀(9288) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): appfuse2 and maven2參考這篇文章:http://blog.csdn.net/bluishglc/article/details/6632280
一。Maven的執(zhí)行方式
例如:
mvn clean
mvn compile
mvn test
mvn package
表明maven會(huì)執(zhí)行到某個(gè)生命周期(lifecycle)的某個(gè)階段(phase)
這個(gè)phase以及它前面所有phase綁定的目標(biāo)(goal)都會(huì)執(zhí)行, 每個(gè)phase都會(huì)邦定maven默認(rèn)的goal或者沒(méi)有g(shù)oal, 或者自定義的goal。
也可以通過(guò)傳入?yún)?shù)跳過(guò)(skip)某些phase,例如:
1。以goal來(lái)構(gòu)建
這類(lèi)就是沒(méi)有綁定phase的goal,但是這類(lèi)goal卻通常會(huì)有個(gè)執(zhí)行前提,就是project必須執(zhí)行到某個(gè)phase,
那么執(zhí)行這個(gè)goal,其實(shí)也會(huì)觸發(fā)maven執(zhí)行到前提要求的phase。
例如jetty:run是個(gè)非綁定phase的goal,它的前提是test-compile,這個(gè)前提是由plugin的代碼邏輯制定的
二。Maven lifecycle, phase概覽
Maven預(yù)設(shè)了三個(gè)Lifecycle ,各包含了下列Phases.
一。Maven的執(zhí)行方式
maven對(duì)構(gòu)建(build)的過(guò)程進(jìn)行了抽象和定義,這個(gè)過(guò)程被稱(chēng)為構(gòu)建的生命周期(lifecycle)。生命周期(lifecycle)由多個(gè)階段(phase)組成,每個(gè)階段(phase)會(huì)掛接一到多個(gè)goal。goal是maven里定義任務(wù)的最小單元,goal分為兩類(lèi),一類(lèi)是綁定phase的,就是執(zhí)行到某個(gè)phase,那么這個(gè)goal就會(huì)觸發(fā),另外一類(lèi)不綁定,就是單獨(dú)任務(wù),這就相當(dāng)于ant里的target。
1。以phase來(lái)構(gòu)建例如:
mvn clean
mvn compile
mvn test
mvn package
表明maven會(huì)執(zhí)行到某個(gè)生命周期(lifecycle)的某個(gè)階段(phase)
這個(gè)phase以及它前面所有phase綁定的目標(biāo)(goal)都會(huì)執(zhí)行, 每個(gè)phase都會(huì)邦定maven默認(rèn)的goal或者沒(méi)有g(shù)oal, 或者自定義的goal。
也可以通過(guò)傳入?yún)?shù)跳過(guò)(skip)某些phase,例如:
mvn install -Dmaven.test.skip=true
1。以goal來(lái)構(gòu)建
這類(lèi)就是沒(méi)有綁定phase的goal,但是這類(lèi)goal卻通常會(huì)有個(gè)執(zhí)行前提,就是project必須執(zhí)行到某個(gè)phase,
那么執(zhí)行這個(gè)goal,其實(shí)也會(huì)觸發(fā)maven執(zhí)行到前提要求的phase。
例如jetty:run是個(gè)非綁定phase的goal,它的前提是test-compile,這個(gè)前提是由plugin的代碼邏輯制定的
/**
* @goal run
* @requiresDependencyResolution runtime
* @execute phase="test-compile"
* @description Runs jetty6 directly from a maven project
*/
public class Jetty6RunMojo extends AbstractJettyRunMojo
{
...
}
Maven預(yù)設(shè)了三個(gè)Lifecycle ,各包含了下列Phases.
- Clean Lifecycle
- pre-clean
- clean
- post-clean
- 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
- Site Lifecycle
- pre-site
- site
- post-site
- site-deploy