Posted on 2011-09-22 10:01
Qzi 閱讀(9283)
評論(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.- Clean Lifecycle
- 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