摘要:生命周期生命周期是為了對(duì)所有的構(gòu)建過程進(jìn)行抽象和統(tǒng)一,開發(fā)了一套高度完善的易擴(kuò)展的生命周期。生命周期本身不做任何實(shí)際的工作,實(shí)際的任務(wù)都交給插件來完成。生命周期步驟在中,有三套相互獨(dú)立的生命周期,分別是和。
Maven 生命周期
Maven 生命周期是為了對(duì)所有的構(gòu)建過程進(jìn)行抽象和統(tǒng)一,開發(fā)了一套高度完善的、易擴(kuò)展的生命周期。這個(gè)生命周期包含了項(xiàng)目的清理、初始化、編譯、測試、打包、集成測試、驗(yàn)證、部署和站點(diǎn)生成等幾乎所有構(gòu)建步驟。
Maven 生命周期本身不做任何實(shí)際的工作,實(shí)際的任務(wù)都交給插件來完成。這樣的設(shè)計(jì),既保證了 Maven 整體框架的輕便,也最大程度的擴(kuò)展性。
Maven 生命周期抽象了構(gòu)建的各個(gè)步驟,明確了它們的邏輯次序,但沒有提供具體的實(shí)現(xiàn),通過插件來完成實(shí)際的工作,每個(gè)構(gòu)建步驟都可以綁定一個(gè)或者多個(gè)插件行為。為了讓 Maven 開箱即用,Maven 為大多數(shù)構(gòu)建步驟編寫并綁定了默認(rèn)插件。比如針對(duì)編譯的插件有 maven-compiler-plugin,針對(duì)測試的插件有 maven-surefire-plugin 等。
生命周期步驟在 Maven 中,有三套相互獨(dú)立的生命周期,分別是 clean、default 和 site。
clean:clean 生命周期的目的是清理項(xiàng)目;
default:default 生命周期的目的是構(gòu)建項(xiàng)目;
site:site 生命周期的目的是建立項(xiàng)目站點(diǎn);
每個(gè)生命周期包含一些階段(phase),這些階段是有順序的,并且后面的階段依賴于前面的階段。以 clean 生命周期為例,它包含的階段有 pre-clean、clean 和 post-clean:
當(dāng)我們調(diào)用 pre-clean 的時(shí)候,只有 pre-clean 階段執(zhí)行;
當(dāng)我們調(diào)用clean 的時(shí)候,pre-clean 和 clean 階段會(huì)按順序執(zhí)行;
當(dāng)我們調(diào)用 post-clean 的時(shí)候,pre-clean、clean 和 post-clean 都會(huì)按順序執(zhí)行;
和生命周期階段的前后依賴關(guān)系相比,clean、default 和 site 這三套生命周期本身是相互獨(dú)立的,我們可以僅僅調(diào)用 clean 生命周期的某個(gè)階段,或者僅僅調(diào)用 default 生命周期的某個(gè)階段,而不會(huì)對(duì)其它生命周期產(chǎn)生任何影響。
clean 生命周期階段 | 執(zhí)行清理前需要完成的工作 |
---|---|
pre-clean | 執(zhí)行清理前需要完成的工作 |
clean | 清理構(gòu)建生成的文件 |
post-clean | 執(zhí)行清理后需要完成的工作 |
階段 | 執(zhí)行清理前需要完成的工作 |
---|---|
validate | - |
initialize | - |
generate-sources | - |
process-sources | - |
generate-resources | - |
process-resources | 處理項(xiàng)目主資源("src/main/resources")文件,如進(jìn)行變量替換等工作 |
compile | 編譯項(xiàng)目的源碼 |
process-classes | - |
generate-test-sources | - |
process-test-sources | 處理項(xiàng)目測試資源("src/test/resources")文件 |
generate-test-resources | - |
process-test-resources | - |
test-compile | 編譯項(xiàng)目測試代碼 |
process-test-classes | - |
test | 使用單元測試框架運(yùn)行測試,測試代碼不會(huì)被打包或部署 |
prepare-package | - |
package | 打包編譯好的代碼 |
pre-integration-test | - |
integration-test | - |
post-integration-test | - |
verify | 包校驗(yàn)操作 |
install | 安裝包到Maven本地倉庫 |
deploy | 將包部署到遠(yuǎn)程倉庫 |
階段 | 執(zhí)行清理前需要完成的工作 |
---|---|
pre-site | 在生成項(xiàng)目站點(diǎn)前執(zhí)行一些工作 |
site | 生成項(xiàng)目站點(diǎn)文檔 |
post-site | 在生成項(xiàng)目站點(diǎn)后執(zhí)行一些工作 |
site-deploy | 將生成項(xiàng)目站點(diǎn)發(fā)布到服務(wù)器上 |
我們通過 Maven 命令行來編譯、測試和打包程序的命令,而這些命令其實(shí)就是完成了生命周期的操作。
mvn clean:調(diào)用插件完成 clean 生命周期的 clean 階段的操作,實(shí)際調(diào)用的是 pre-clean 和clean 兩個(gè)階段;
mvn test:調(diào)用 default 生命周期對(duì)應(yīng)的階段的插件,完成從 validate 到 test 階段的所有操作;
mvn clean install:調(diào)用 clean 周期的 clean 階段和 default 的 install 階段,實(shí)際調(diào)用的是 pre-clean、clean 以及 validate 到 install 階段;
mvn clean deploy site-deploy:調(diào)用完整的三個(gè)生命周期所有階段(post-clean 不被調(diào)用);
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/76273.html
摘要:的主要思想是約定優(yōu)于配置。強(qiáng)烈建議遵循以上規(guī)范,避免不必要的麻煩。依賴傳遞依賴范圍除了控制,還會(huì)對(duì)依賴傳遞產(chǎn)生影響。此外還提供了和來進(jìn)一步管理依賴,分別稱為可選依賴和排除依賴。 showImg(https://segmentfault.com/img/remote/1460000012363876?w=1240&h=698); Maven 是跨平臺(tái)的項(xiàng)目管理工具,主要服務(wù)于基于Java...
摘要:基本配置環(huán)境變量環(huán)境變量中添加為主目錄在中添加使用阿里云中央倉庫修改根目錄下文件夾中的文件,內(nèi)容如下創(chuàng)建基于的項(xiàng)目使用命令行創(chuàng)建使用原型插件創(chuàng)建工程。 「博客搬家」 原地址: 簡書 原發(fā)表時(shí)間: 2017-03-23 Maven 是基于項(xiàng)目對(duì)象模型「POM」,可以通過一小段描述信息來管理項(xiàng)目的構(gòu)建、報(bào)告和文檔的軟件項(xiàng)目管理工具。本文總結(jié)了 Maven 的基本用法。 1. Maven...
摘要:學(xué)習(xí)筆記先生,您在寫代碼嗎不,我們正在完成一項(xiàng)偉大的工程。于是打算重新學(xué)習(xí)一下。中央倉庫鏡像為了分擔(dān)中央倉庫的流量,提升用戶的訪問速度。生成項(xiàng)目報(bào)告,站點(diǎn),發(fā)布站點(diǎn)。修改源碼后也需要逐個(gè)手動(dòng)進(jìn)行操作。 maven學(xué)習(xí)筆記 先生,您在寫代碼嗎? 不,我們正在完成一項(xiàng)偉大的工程。 前言 在剛學(xué)maven時(shí),我就把maven當(dāng)作一個(gè)引入jar包的工具而已,以前是自己下載jar包,現(xiàn)在是只用...
摘要:但是,這種行為是危險(xiǎn)的,所以最佳實(shí)踐應(yīng)該是顯示聲明任何項(xiàng)目中直接用到的依賴。生命周期和插件的生命周期生命周期清理項(xiàng)目。生命周期建立和發(fā)布站點(diǎn),分享項(xiàng)目信息。 坐標(biāo)和依賴 依賴沖突的調(diào)節(jié) 當(dāng)包的依賴產(chǎn)生沖突,如A->B->X(1.0)和A->D-X(2.0),應(yīng)該引入X的哪一個(gè)版本?消解沖突的法則如下: 路徑最近者優(yōu)先。 如路徑長度一樣,第一聲明者優(yōu)先。 排除不想要的依賴 在引入第三...
摘要:的好處節(jié)省空間項(xiàng)目的體積相比傳統(tǒng)項(xiàng)目小很多,因?yàn)閷晚?xiàng)目分開了,通過依賴管理來管理包。一鍵構(gòu)建項(xiàng)目可以完成的工作編譯測試運(yùn)行打包部署。 Maven 簡介 什么是 Maven Apache Maven,是一個(gè)軟件項(xiàng)目管理及自動(dòng)構(gòu)建工具,由Apache軟件基金會(huì)所提供,一個(gè)開源項(xiàng)目,由 Java 開發(fā),并且只是用來管理 Java 項(xiàng)目的。 Maven 的好處 節(jié)省空間: Maven ...
閱讀 2034·2021-11-11 16:54
閱讀 2111·2019-08-30 15:55
閱讀 3611·2019-08-30 15:54
閱讀 391·2019-08-30 15:44
閱讀 2228·2019-08-30 10:58
閱讀 424·2019-08-26 10:30
閱讀 3048·2019-08-23 14:46
閱讀 3191·2019-08-23 13:46