Maven生命周期與插件
Maven的生命周期是抽象的,往往跟我們輸入的mvn命令有關(guān),生命周期的實際實現(xiàn)是由插件去實現(xiàn)的斋竞。具體的構(gòu)建步驟钻蔑,大部分都跟插件綁定啥刻,比如編譯這個步驟跟插件maven-compiler-plugin:compile 綁定。
Maven的三套生命周期
Maven的生命周期不是一個整體咪笑,其實它擁有三套完整而且相互獨立的生命周期可帽,分別是clean,default,site,clean生命周期的作用是清理項目,default生命周期的作用是構(gòu)建項目窗怒,site生命周期的作用是建立項目站點映跟。
如同安卓的Activity的生命周期一樣蓄拣,Maven的生命周期也會含有不同的階段,階段是有順序的努隙,并且后面的階段依賴于前面的階段球恤。以clean生命周期來說,它有三個階段荸镊,pre-clean咽斧,clean,post-clean躬存,當(dāng)執(zhí)行clean的時候张惹,意味著pre-clean以及clean階段都會執(zhí)行。但是三套生命周期是相互獨立的优构,所以default的生命周期的某一個階段執(zhí)行诵叁,并不會影響到clean或者是site生命周期的任何一個階段。
clean生命周期
clean生命周期包含三個階段:
pre-clean 執(zhí)行一些需要在clean之前完成的工作
clean 移除所有上一次構(gòu)建生成的文件
post-clean 執(zhí)行一些需要在clean之后立刻完成的工作
default生命周期
validate
generate-sources
process-sources
generate-resources
process-resources 處理項目主資源文件钦椭。一般來說拧额,是對src/main/resources目錄內(nèi)的內(nèi)容進(jìn)行變量替換輸出到項目的主classpath目錄
compile 編譯項目的主源碼,一般來說就是src/main/java目錄下的文件輸出到主classpath目錄
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources 處理項目測試資源文件彪腔。一般來說侥锦,是對src/test/resources目錄內(nèi)的內(nèi)容進(jìn)行變量替換輸出到項目的主classpath目錄
test-compile 編譯項目的測試代碼,一般來說就是src/test/java目錄下的文件輸出到主classpath目錄
process-test-classes
test 使用單元測試框架運行測試德挣。這些測試代碼不會被打包或部署恭垦。
prepare-package
package 接受編譯好的代碼,打包成可發(fā)布的格式格嗅,如 JAR 番挺。
pre-integration-test
integration-test
post-integration-test
verify
install 將包安裝到Maven本地倉庫,供其他Maven項目使用
deploy 將最終的包復(fù)制到遠(yuǎn)程的倉庫屯掖,以讓其它開發(fā)人員與Maven項目共享玄柏。
更多的詳細(xì)介紹請參考
http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html