日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Maven之(二)Maven生命周期

發布時間:2025/3/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Maven之(二)Maven生命周期 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們在開發項目的時候,不斷地在編譯、測試、打包、部署等過程,maven的生命周期就是對所有構建過程抽象與統一,生命周期包含項目的清理、初始化、編譯、測試、打包、集成測試、驗證、部署、站點生成等幾乎所有的過程。

Maven有三套相互獨立的生命周期,請注意這里說的是“三套”,而且“相互獨立”,初學者容易將Maven的生命周期看成一個整體,其實不然。這三套生命周期分別是:

?????CleanLifecycle?在進行真正的構建之前進行一些清理工作。

?????DefaultLifecycle?構建的核心部分,編譯,測試,打包,部署等等。

?????SiteLifecycle?生成項目報告,站點,發布站點。

?

再次強調一下它們是相互獨立的,可以僅僅調用clean來清理工作目錄,僅僅調用site來生成站點。當然也可以直接運行 “mvn clean install site” 運行所有這三套生命周期。

?

每套生命周期都由一組階段(Phase)組成,我們平時在命令行輸入的命令總會對應于一個特定的階段。maven中所有的執行動作(goal)都需要指明自己在這個過程中的執行位置,然后maven執行的時候,就依照過程的發展依次調用這些goal進行各種處理。這個也是maven的一個基本調度機制。

?

每套生命周期還可以細分成多個階段。

?

?

Clean生命周期

?

?

Clean生命周期一共包含了三個階段:

?

Clean生命周期

pre-clean

執行一些需要在clean之前完成的工作

clean

移除所有上一次構建生成的文件

post-clean

執行一些需要在clean之后立刻完成的工作

?

?

命令“mvn clean”中的就是代表執行上面的clean階段,在一個生命周期中,運行某個階段的時候,它之前的所有階段都會被運行,也就是說,“mvn clean” 等同于 “mvn pre-clean clean” ,如果我們運行“mvn post-clean” ,那么 “pre-clean”,“clean” 都會被運行。這是Maven很重要的一個規則,可以大大簡化命令行的輸入。

?

Default生命周期

?

?

Maven最重要就是的Default生命周期,也稱構建生命周期,絕大部分工作都發生在這個生命周期中,每個階段的名稱與功能如下::

?

Default生命周期

validate

驗證項目是否正確,以及所有為了完整構建必要的信息是否可用

generate-sources

生成所有需要包含在編譯過程中的源代碼

process-sources

處理源代碼,比如過濾一些值

generate-resources

生成所有需要包含在打包過程中的資源文件

process-resources

復制并處理資源文件至目標目錄,準備打包

compile

編譯項目的源代碼

process-classes

后處理編譯生成的文件,例如對Java類進行字節碼增強(bytecode enhancement)

generate-test-sources

生成所有包含在測試編譯過程中的測試源碼

process-test-sources

處理測試源碼,比如過濾一些值

generate-test-resources

生成測試需要的資源文件

process-test-resources

復制并處理測試資源文件至測試目標目錄

test-compile

編譯測試源碼至測試目標目錄

test

使用合適的單元測試框架運行測試。這些測試應

該不需要代碼被打包或發布

prepare-package

在真正的打包之前,執行一些準備打包必要的操

package

將編譯好的代碼打包成可分發的格式,如

JAR,WAR,或者EAR

pre-integration-test

執行一些在集成測試運行之前需要的動作。如建

立集成測試需要的環境

integration-test

如果有必要的話,處理包并發布至集成測試可以

運行的環境

post-integration-test

執行一些在集成測試運行之后需要的動作。如清

理集成測試環境。

verify

執行所有檢查,驗證包是有效的,符合質量規范

install

安裝包至本地倉庫,以備本地的其它項目作為依

賴使用

deploy

復制最終的包至遠程倉庫,共享給其它開發人員

和項目(通常和一次正式的發布相關)

?

可見,構建生命周期被細分成了22個階段,但是我們沒必要對每個階段都了如指掌,經常關聯使用的只有process-test-resources、test、package、install、deploy等幾個階段而已

?

一般來說,位置稍后的過程都會依賴于之前的過程。這也就是為什么我們運行“mvn install” 的時候,代碼會被編譯,測試,打包。當然,maven同樣提供了配置文件,可以依照用戶要求,跳過某些階段。比如有時候希望跳過測試階段而直接install,因為單元測試如果有任何一條沒通過,maven就會終止后續的工作。

?

?

Site生命周期

?

?

Site生命周期

pre-site

執行一些需要在生成站點文檔之前完成的工作

site

生成項目的站點文檔

post-site

執行一些需要在生成站點文檔之后完成的工作,并且為部署做準備

site-deploy

將生成的站點文檔部署到特定的服務器上

?

?

這里經常用到的是site階段和site-deploy階段,用以生成和發布Maven站點,這是Maven相當強大的功能。

轉載于:https://www.cnblogs.com/qilihu/p/6289853.html

總結

以上是生活随笔為你收集整理的Maven之(二)Maven生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。