很多 C++ 方面的書籍都說明瞭虛析構的作用: 保證派生類的析構函數被調用,並且使析構順序與構造函數相反 保證資源能夠被正確釋放 很久一段時間以來,我一直認為第 2 點僅僅指的是:當派生類使用 RAII 手法時,如果派生類的析構沒有被調用,就會產生資源泄露。就像下麵的代碼: #include <io ...
轉自:
http://www.java265.com/Maven/202204/3220.html
下文筆者講述maven生命周期的詳解說明,如下所示:
Maven生命周期
Maven生命周期: 對所有的構建過程進行抽象和統一 包括項目清理,初始化,編譯,打包,測試,部署等幾乎所有構建步驟 Maven有三套相互獨立的生命周期,三套生命周期分別是: Clean Lifecycle 在進行真正的構建之前進行一些清理工作。 Default Lifecycle 構建的核心部分,編譯,測試,打包,部署等等。 Site Lifecycle 生成項目報告,站點,發佈站點
clean生命周期
clean生命周期: 由一組階段(Phase)組成, 如:運行mvn clean,這個的clean是clean生命周期的一個階段 有clean生命周期,也有clean階段 clean生命周期一共包含了三個階段: pre-clean: 執行一些需要在clean之前完成的工作 clean: 移除所有上一次構建生成的文件 post-clean: 執行一些需要在clean之後立刻完成的工作 mvn clean效果同mvn pre-clean clean 當我們運行 mvn post-clean,則pre-clean,clean都會被運行
default生命周期
default生命周期有以下重要步驟:validate generate-sources process-sources generate-resources process-resources 複製並處理資源文件,至目標目錄,準備打包。 compile 編譯項目的源代碼。 process-classes generate-test-sources process-test-sources generate-test-resources process-test-resources 複製並處理資源文件,至目標測試目錄。 test-compile 編譯測試源代碼。 process-test-classes test 使用合適的單元測試框架運行測試。這些測試代碼不會被打包或部署。 prepare-package package 接受編譯好的代碼,打包成可發佈的格式,如 JAR 。 pre-integration-test integration-test post-integration-test verify 運行任何檢查,驗證包是否有效且達到質量標準。 install 將包安裝至本地倉庫,以讓其它項目依賴。 deploy 將最終的包複製到遠程的倉庫,以讓其它開發人員與項目共用。 註意事項: 運行任何一個階段的時候 它前面的所有階段都會被運行 這就是運行mvn install時,mvn clean也會的到運行
site生命周期
site生命周期包含如下4個階段:pre-site:執行一些需要在生成站點文檔之前完成的工作 site:生成項目的站點文檔 post-site:執行一些需要在生成站點文檔之後完成的工作,並且為部署做準備 site-deploy:將生成的站點文檔部署到特定的伺服器上