Maven的生命周期
Maven的生命周期是Maven很重要的一個特性。
Maven的生命周期定義了一系列的階段(phase)吼蚁。運行Maven命令執(zhí)行的每個步驟都由生命周期來指定贮缕。
Maven有三套相互獨立的生命周期辙谜,分別是Clean 生命周期、Default 生命周期感昼、Site生命周期装哆。生命周期都由一組階段(Phase)組成,我們平時在命令行輸入的命令總會對應(yīng)于一個特定的階段定嗓。
下面具體說一下每個生命周期蜕琴。
Clean LifeCycle
Clean生命周期一共包含了三個階段:
- pre-clean 執(zhí)行一些需要在clean之前完成的工作
- clean 移除所有上一次構(gòu)建生成的文件
- post-clean 執(zhí)行一些需要在clean之后立刻完成的工作
比如當(dāng)我們執(zhí)行mvn clean 命令的時候,clean對應(yīng)的就是上面的clean階段宵溅。在Maven的生命周期中凌简,當(dāng)運行某一個階段的時候,他之前的所有階段都會被運行恃逻,也就是說mvn clean 等同于 mvn pre-clean clean 雏搂。mvn的這個規(guī)則可以大大的簡化命令行的輸入。
Site LifeCycle
下面看一下Site生命周期的各個階段:
- pre-site 執(zhí)行一些需要在生成站點文檔之前完成的工作
- site 生成項目的站點文檔
- post-site 執(zhí)行一些需要在生成站點文檔之后完成的工作寇损,并且為部署做準(zhǔn)備
- site-deploy 將生成的站點文檔部署到特定的服務(wù)器上
這里經(jīng)常用到的是site階段和site-deploy階段凸郑,用以生成和發(fā)布Maven站點,這可是Maven相當(dāng)強(qiáng)大的功能润绵,Manager比較喜歡线椰,文檔及統(tǒng)計數(shù)據(jù)自動生成,很好看尘盼。
Default LifeCycle
- validate
- generate-sources
- process-sources
- generate-resources
- process-resources 復(fù)制并處理資源文件憨愉,至目標(biāo)目錄,準(zhǔn)備打包卿捎。
- compile 編譯項目的源代碼配紫。
- process-classes
- generate-test-sources
- process-test-sources
- generate-test-resources
- process-test-resources 復(fù)制并處理資源文件,至目標(biāo)測試目錄午阵。
- test-compile 編譯測試源代碼躺孝。
- process-test-classes
- test 使用合適的單元測試框架運行測試。這些測試代碼不會被打包或部署底桂。
- prepare-package
- package 接受編譯好的代碼植袍,打包成可發(fā)布的格式,如 JAR 籽懦。
- pre-integration-test
- integration-test
- post-integration-test
- verify
- install 將包安裝至本地倉庫于个,以讓其它項目依賴。
- deploy 將最終的包復(fù)制到遠(yuǎn)程的倉庫暮顺,以讓其它開發(fā)人員與項目共享厅篓。
記住秀存,運行任何一個階段的時候,它前面的所有階段都會被運行羽氮,這也就是為什么我們運行mvn install 的時候或链,代碼會被編譯,測試档押,打包澳盐。