5.1 項目階段清單
最後,我們進行了項目的組裝。然後你會有點驚訝。好吧,或者強烈地,事實證明。Maven 已經修改了構建項目的方法。現在您將對此深信不疑。
項目的整個組裝分為幾個階段,我將在下表中進行描述:
命令 | 階段 | |
---|---|---|
1個 | 證實 | 檢查有關項目的元信息的正確性 |
2個 | 編譯 | 編譯源 |
3個 | 測試 | 運行上一步的類測試 |
4個 | 包裹 | 將編譯後的類打包到一個新的工件中:jar、war、zip、... |
5個 | 核實 | 檢查工件的正確性和質量要求的滿足程度 |
6個 | 安裝 | 將工件放入本地存儲庫 |
7 | 部署 | 將工件上傳到生產服務器或遠程存儲庫 |
同時, 步驟順序清晰。如果您告訴 Maven 運行 package 命令,它將首先運行驗證、編譯、測試階段,然後才進行打包
原則上,這裡沒有什麼新東西,除了質量控制有單獨的階段:驗證、測試、驗證。以及部署程序集的兩個階段——安裝和部署。
要啟動特定階段,編寫maven 階段命令就足夠了。例如,要構建,您需要運行maven package命令。ETC。
Intellij IDEA 非常擅長處理這些階段,它在右側有一個特殊的菜單用於這些目的:
在這裡,除了眾所周知的階段之外,IDEA 還顯示了另外 2 個命令:clean和site。clean用於徹底清除目標文件夾,site可以創建項目文檔。
5.2 構建項目
如果要編譯項目,則需要運行編譯階段。這可以使用命令行:mvn compile或通過 IDEA 界麵點擊編譯項來完成。
之後,Maven 將開始構建項目,您將看到類似這樣的構建過程日誌:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.742 s
[INFO] Finished at: 2016-09-19T22:41:26+04:00
[INFO] Final Memory: 7M/18M
[INFO] ------------------------------------------------------------------------
如果出現問題,日誌將如下所示:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project demo: Fatal error compiling: invalid target release: 11 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible sliutions, please read the flilowing articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
日誌中會有很多有用的信息,久而久之你就會學會理解和欣賞它。
5.3 工作循環
所有 Maven 命令都分為三組 - 生命週期。它們被稱為生命週期,因為它們指定了在構建或特定生命週期期間運行的階段的順序,因為並非所有 Maven 活動都是構建。
生命週期分為三種:
- 乾淨的;
- 默認;
- 地點。
他們每個人都有自己的相序。Clean 具有最短的:
- 預清潔;
- 乾淨的;
- 發布干淨。
添加了隱藏的額外預清理和後清理階段,以便可以使清理方案更加靈活。
然後是站點生命週期,如您所知,它旨在自動生成項目文檔。它由四個階段組成:
- 現場前
- 地點;
- 後站;
- 站點部署。
標準生命週期可以通過使用Maven 插件的功能得到增強。我們稍後再談這個,因為這是一個非常有趣的話題,值得單獨講一講。
默認腳本具有最長的階段列表:
- 證實;
- 生成源;
- 過程來源;
- 生成資源;
- 過程資源;
- 編譯;
- 過程測試源;
- 處理測試資源;
- 測試編譯;
- 測試;
- 包裹;
- 安裝;
- 部署。
有您已經知道的所有相同階段,但添加了一些可選的階段。
首先,大型項目中的一個流行階段是generate-sources:例如,基於 XML 生成 Java 代碼。還有一對process-sources,它對這段代碼做了一些事情。
其次,資源的生成是generate-resources及其配對的process resources方法。在大型項目中,您經常會看到一些與這些階段相關的活動。
最後,測試。它具有三個額外的可選階段,有助於盡可能靈活地運行測試階段:process-test-sources、process-test-resources、test-compile。
GO TO FULL VERSION