一、核心構建指令
-
mvn clean
-
作用:刪除?
target
?目錄(清理編譯/打包生成的文件)。 -
場景:確保從頭開始構建,避免殘留文件干擾。
-
-
mvn compile
-
作用:編譯項目源代碼。
-
場景:快速檢查代碼是否能編譯通過,無需打包。
-
-
mvn package
-
作用:編譯 + 運行測試 + 打包(生成 JAR/WAR 等)。
-
場景:本地驗證完整構建流程,生成可部署的包。
-
-
mvn install
-
作用:編譯 + 測試 + 打包,并將構建結果安裝到本地倉庫。
-
場景:本地多模塊項目中,將子模塊的構建結果提供給其他模塊使用。
-
-
mvn deploy
-
作用:將構建結果發布到遠程倉庫(如 Nexus、Artifactory)。
-
場景:將穩定版本的依賴共享給團隊或持續集成環境。
-
二、依賴管理指令
-
mvn dependency:tree
-
作用:打印項目依賴樹,顯示所有傳遞性依賴。
-
場景:分析依賴沖突(如多個版本的庫沖突),快速定位問題。
-
-
mvn dependency:analyze
-
作用:檢查未聲明但被使用的依賴(或聲明但未使用的依賴)。
-
場景:優化?
pom.xml
,清理冗余依賴。
-
-
mvn versions:display-dependency-updates
-
作用:掃描依賴是否有新版本可用。
-
場景:定期更新依賴版本,修復安全漏洞或使用新特性。
-
三、測試相關指令
-
mvn test
-
作用:運行單元測試。
-
場景:驗證代碼邏輯是否符合預期。
-
-
mvn test -Dtest=TestClassName
-
作用:運行指定測試類。
-
場景:調試單個測試用例,避免運行全部測試。
-
-
mvn test -DskipTests
-
作用:跳過測試階段。
-
場景:快速構建(如臨時修復時不需要執行測試)。
-
四、調試與優化指令
-
mvn -X
-
作用:開啟 Maven 的調試日志(顯示詳細執行過程)。
-
場景:排查構建失敗的具體原因。
-
-
mvn -U
-
作用:強制更新遠程倉庫的快照(Snapshot)依賴。
-
場景:確保使用最新的快照版本(如依賴頻繁更新的開發中庫)。
-
-
mvn --offline
-
作用:離線模式(僅使用本地倉庫的依賴)。
-
場景:網絡不可用時繼續構建。
-
五、多模塊項目指令
-
mvn -pl module1,module2
-
作用:僅構建指定的子模塊(如?
module1
?和?module2
)。 -
場景:大型項目中快速構建部分模塊,節省時間。
-
-
mvn -am -pl module1
-
作用:構建指定模塊及其依賴的其他模塊。
-
場景:確保依賴的子模塊已構建(如?
module1
?依賴?core
?模塊時自動構建?core
)。
-
六、高級場景
-
mvn help:effective-pom
-
作用:生成合并所有父 POM 后的最終有效 POM。
-
場景:分析實際生效的配置(如插件、依賴版本)。
-
-
mvn archetype:generate
-
作用:使用 Maven 原型(模板)創建新項目。
-
場景:快速生成標準項目結構(如 Spring Boot、JavaFX 項目)。
-
-
mvn release:prepare
?/?mvn release:perform
-
作用:自動化版本發布(更新版本號、打 Tag、發布到倉庫)。
-
場景:規范化的版本發布流程。
-
總結表格
指令 | 典型場景 |
---|---|
mvn clean install | 清理舊構建并安裝到本地倉庫 |
mvn dependency:tree | 分析依賴沖突或冗余依賴 |
mvn test -DskipTests | 跳過測試快速打包 |
mvn versions:display-dependency-updates | 檢查依賴庫是否有新版本可用 |
mvn -pl module1 -am | 構建指定模塊及其依賴模塊 |
mvn -X | 開啟詳細日志排查構建問題 |
通過靈活組合這些指令,可以高效完成構建、調試和發布任務。