maven 常用指令

Maven 是 Java 項目構建和依賴管理的得力助手。這里為你總結了一些常用指令,希望能幫你提升開發效率。

下面這個表格匯總了 Maven 最核心和常用的一些命令:

命令主要功能典型使用場景
mvn clean清理項目,刪除?target?目錄及其所有編譯輸出文件。確保全新的構建環境,避免舊文件干擾。
mvn compile編譯項目的源代碼(src/main/java?下的?.java?文件)。快速檢查源代碼是否存在編譯錯誤。
mvn test??編譯??測試代碼和源代碼,并??運行??所有單元測試(使用 JUnit 或 TestNG)。驗證代碼功能是否正確,是保證質量的重要環節。
mvn package將編譯后的代碼??打包??為可分發的格式(如 JAR、WAR)。生成可用于部署或發布的構件。
mvn install將打包好的構件??安裝到本地 Maven 倉庫??(默認在?~/.m2/repository)。供本地其他項目引用,多模塊項目開發時非常常用。
mvn deploy將構件??部署到遠程 Maven 倉庫??(需要配置)。發布構件,以便團隊其他成員或整個公司可以使用。
mvn dependency:tree??顯示項目的依賴樹??,展示所有直接依賴和傳遞依賴。分析依賴關系,排查依賴沖突的利器。
mvn archetype:generate??根據原型(模板)創建新項目??。快速搭建項目骨架。

mvn help:effective-settings # 查看生效的 settings 配置
mvn help:effective-pom ? ? ?# 查看生效的 POM 配置(合并了所有父POM)
mvn dependency:resolve ? ? # 解析并顯示依賴的實際獲取位置

🧩 ??理解 Maven 生命周期??

Maven 命令與??生命周期??的概念緊密相關。Maven 有三套相互獨立的生命周期:clean(清理)、default(默認,又稱構建生命周期)、site(站點文檔)

。每個生命周期包含多個??階段??。

當你執行某個生命周期階段時,Maven ??會自動執行該生命周期中所有之前的階段??。例如:

  • ?執行?mvn packagedefault?生命周期的一個階段)時,Maven 會先執行?compile,?test?等所有位于?package?之前的階段。
  • ?執行?mvn install?會自動觸發?clean?之前的生命周期階段(如?compile,?test,?package)。

🔧 ??常用參數與技巧??

  • ???跳過測試??:
    • ?-DskipTests: ??跳過測試的運行??,但會編譯測試代碼。
    • ?-Dmaven.test.skip=true: ??同時跳過測試代碼的編譯和運行??。效率更高,但完全不處理測試。
  • ???強制更新快照依賴 (-U)??:強制檢查并更新遠程倉庫中的??快照(SNAPSHOT)版本依賴??(默認每天只更新一次)。常用于確保使用依賴的最新快照。
  • ???指定配置文件 (-P)??: 激活在?pom.xml?或?settings.xml?中定義的特定 ??profile??(配置剖面),常用于區分不同環境(如開發、測試、生產)。例如:mvn clean install -Pprod
  • ???離線模式 (-o)??:在??離線模式??下運行 Maven,僅使用本地倉庫中已有的依賴,不聯網檢查更新。
  • ???顯示調試信息 (-X)??: 輸出 Maven 運行的??詳細調試信息??,用于排查問題。

💡 ??高效命令組合??

  • ?mvn clean install: ??最常用的組合之一??。先清理舊構建,再執行完整編譯、測試、打包并安裝到本地倉庫。
  • ?mvn clean package: 清理后打包,常用于生成最終部署包。
  • ?mvn clean install -DskipTests: 快速安裝,跳過測試以節省時間(請確保代碼質量)。
  • ?mvn clean install -U: 清理安裝并強制更新快照依賴。

📖 ??了解更多??

  • ?想深入了解 Maven 的??依賴管理??(如排除依賴、解決沖突),可以多研究?pom.xml?中的?<dependencies>?和?<dependencyManagement>?配置。
  • ?探索各種 Maven 插件(如 Spring Boot、Docker 等相關的插件)可以讓你更強大地自定義構建過程。

希望這份總結能幫助你更高效地使用 Maven。多練習,這些命令就會變得得心應手。

mvn -X dependency:resolve

mvn -e -X clean package

mvn -X dependency:resolve | grep -i "spring-core"

mvn -X dependency:resolve| Select-String "spring-core"?

檢查是否有其他依賴引入舊版本
mvn dependency:tree -Dincludes=*jsqlparser*


1. 首先修復父 POM 中的重復模塊定義

2. 然后在項目根目錄執行:mvn clean install -DskipTests

3. 最后在子模塊目錄執行:mvn clean compile


# 清理本地緩存
mvn clean install -U

# 或者強制更新所有依賴
mvn clean compile -U -Dmaven.main.skip=true

mvn dependency:tree | grep jsqlparser


# 快速構建(跳過測試和代碼檢查)
mvn clean install -DskipTests -Dcheckstyle.skip=true -Dspotbugs.skip=true

# 僅清理和編譯
mvn clean compile

# 構建并運行測試(不打包)
mvn clean test

# 重新下載所有依賴
mvn clean compile -U

# 查看項目信息
mvn help:effective-pom

# 查看項目描述
mvn help:describe

# 查看插件信息
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-compiler-plugin

# 生成項目站點
mvn site


# 查看依賴樹
mvn dependency:tree

# 分析依賴沖突
mvn dependency:analyze

# 下載所有依賴源碼
mvn dependency:sources

# 下載依賴的javadoc
mvn dependency:resolve -Dclassifier=javadoc

# 復制依賴到指定目錄
mvn dependency:copy-dependencies


# 清理并重新構建項目
mvn clean install

# 跳過測試構建
mvn clean install -DskipTests

# 僅編譯項目
mvn compile

# 運行測試
mvn test

# 打包項目
mvn package

# 安裝到本地倉庫
mvn install

# 部署到遠程倉庫
mvn deploy

E:\仿真\osp-cloud-java-1.2.0-xn-release\xn-modules\xn-system>mvn dependency:tree -Dincludes=*jsqlparser*
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------------< com.cnpc.xn:xn-system >------------------------
[INFO] Building xn-system 1.2.100-xn-release
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ xn-system ---
[INFO] com.cnpc.xn:xn-system:jar:1.2.100-xn-release
[INFO] \- cnpc.udp.dfw:udp-mybatis-plus-starter:jar:1.3.1:compile
[INFO] ? ?\- com.baomidou:mybatis-plus-jsqlparser:jar:3.5.10.1:compile
[INFO] ? ? ? \- com.github.jsqlparser:jsqlparser:jar:5.1:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: ?1.803 s
[INFO] Finished at: 2025-09-03T09:26:30+08:00
[INFO] ------------------------------------------------------------------------


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/95470.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/95470.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/95470.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

# pdf.js完全指南:構建現代Web PDF查看與解析解決方案

在當今Web開發中&#xff0c;實現高質量的PDF查看功能一直是前端開發者面臨的挑戰之一。作為最受歡迎的JavaScript PDF庫&#xff0c;pdf.js已經成為解決這一問題的行業標準。由Mozilla開發并維護的pdf.js項目&#xff0c;通過純JavaScript實現PDF解析與渲染&#xff0c;徹底改…

高效對象屬性復制工具

日常編程中&#xff0c;經常會碰到對象屬性復制的場景&#xff0c;比如 VO、DTO、PO、VO 等之間的轉換&#xff0c;關于什么是VO、DTO、PO、VO 等可以看上篇文章&#xff0c;VO、DTO、PO、VO 等對象具體有哪些方式可以使用呢&#xff1f; set/get 方式 性能最好的方式&#x…

大疆圖傳技術參數對比 你了解多少?

無人機是現代航空技術與智能控制技術結合的產物&#xff0c;已從軍事領域廣泛滲透至民用場景&#xff0c;成為推動各行業效率升級的關鍵工具。無人機的全稱為 “無人駕駛航空器&#xff08;Unmanned Aerial Vehicle&#xff0c;簡稱 UAV&#xff09;”&#xff0c;簡言之&#…

Redis 緩存熱身(Cache Warm-up):原理、方案與實踐

在 Redis 緩存架構中&#xff0c;“緩存熱身”是指在系統正式提供服務前&#xff08;如重啟、擴容后&#xff09;&#xff0c;主動將熱點數據加載到 Redis 中的操作。其核心目標是避免**緩存穿透**&#xff08;請求直達數據庫&#xff09;和**緩存雪崩**&#xff08;大量請求同…

基于SpringBoot的大學生就業招聘系統

1. 在線演示&#xff1a; 后臺&#xff1a;http://springbootiv1oo.xiaobias.com/springbootiv1oo/admin/dist/index.html 前臺&#xff1a;http://springbootiv1oo.xiaobias.com/springbootiv1oo/front/index.html 管理員&#xff1a;abo/abo 用戶&#xff1a;用戶1/123456、…

Java反序列化漏洞揭秘:從原理到攻擊實戰

一、背景 熟悉接口開發的同學一定知道&#xff0c;能將數據對象很輕松的實現多平臺之間的通信、對象持久化存儲&#xff0c;序列化和反序列化是一種非常有效的手段&#xff0c;例如如下應用場景&#xff0c;對象必須 100% 實現序列化。 DUBBO&#xff1a;對象傳輸必須要實現序…

Time-MOE 音頻序列分類任務

prompt 我準備做語音疾病分類任務。語音音頻是 WAV 格式的音頻&#xff0c;基本上分為兩類&#xff0c;分別是疾病類和非疾病類。也有少數數據集是多分類&#xff0c;現在我找到了26個數據集&#xff0c;我準備我已經在 MLP CNN 上面測試了它們的基準&#xff0c;下面我找到了一…

[嵌入式embed][Qt]Qt5.12+Opencv4.x+Cmake4.x_測試Qt編譯的opencv4.x的庫

[嵌入式embed][Qt]Qt5.12Opencv4.xCmake4.x_測試Qt編譯的opencv4.x的庫編譯Qt-Opencv庫測試流程-①創建一個簡單的qt-ui工程配置 & 測試配置庫編譯環境測試代碼百度云-工程(opencv4.xqt5.12的工程)參考文檔編譯Qt-Opencv庫 [嵌入式embed][Qt]Qt5.12Opencv4.xCmake4.x_用Qt…

相較于傳統AR礦物鑒定有哪些優勢?

與傳統的礦物鑒定方法相比&#xff0c;AR礦物鑒定就像是一位全面升級的“超級助手”&#xff0c;展現出了無可比擬的優勢。傳統的礦物鑒定方法&#xff0c;往往依賴于地質學家或專業鑒定人員的豐富經驗。他們需要通過肉眼觀察礦物的顏色、光澤、硬度等物理特征&#xff0c;再結…

第5節:分布式文件存儲

本節主要是講解的是分布式文件存儲&#xff0c;主要介紹了阿里云OSS云存儲和Minio文件存儲&#xff0c;本章重點主要是掌握怎么在SpringBoot項目里面接入文件存儲。 記錄、交流、實踐&#xff0c;讓每一份付出皆可看見&#xff0c;讓你我共同前行&#x1f601; 1.分布式文件存…

當 GitHub 宕機時,我們如何協作?

一、引言1.1 GitHub 的重要性及宕機影響在當今軟件開發的生態系統中&#xff0c;GitHub 已然成為全球開發者不可或缺的核心平臺。它為無數開源項目與企業級開發團隊提供了高效的代碼托管、版本控制、協作開發以及項目管理等服務。然而&#xff0c;2025 年 8 月那場波及全球的 G…

Ansible 常用模塊歸納總結

[studentmaster ansible]$ ansible-galaxy collection install http://ansible.example.com/materials/community-general-6.3.0.tar.gz -p collections/##將第三方模塊下載到collections下 [studentmaster ansible]$ ansible-galaxy collection install http://ansible.exampl…

計算機網絡:概述層---TCP/IP參考模型

&#x1f310; TCP/IP四層模型詳解&#xff1a;互聯網的核心協議架構深度剖析 &#x1f4c5; 更新時間&#xff1a;2025年9月3日 &#x1f3f7;? 標簽&#xff1a;TCP/IP模型 | 互聯網協議 | 四層模型 | 計算機網絡 | 協議棧 | 網絡通信 | 王道考研 摘要: 本文將深入淺出地解析…

打工人日報#20250902

打工人日報#20250902 今天晚上去了玄武湖&#xff0c;來南京三次了&#xff0c;終于來了一次知識點 不確定度 “不確定度” 是測量領域的核心概念&#xff0c;用于量化測量結果的可靠性與分散程度—— 簡單來說&#xff0c;它回答了 “這個測量值有多可信&#xff1f;真實值可能…

告別手動復制粘貼:C# 實現 Excel 與 TXT 文本文件高效互轉

在日常辦公和數據處理工作中&#xff0c;Excel 和 TXT文本文件是兩種常見的數據存儲格式。Excel文件適合進行復雜的數據分析、公式運算和圖表生成&#xff0c;而 TXT文件則更適合用于存儲和傳輸純文本數據&#xff0c;如日志、配置文件或簡單的數據列表。很多時候&#xff0c;我…

elasticsearch學習(二)插件安裝

目錄上一篇文章查看插件安裝分詞器analysis-icu重啟實例重新查看插件上一篇文章 elasticsearch學習&#xff08;一&#xff09; 下載、安裝和初次部署 查看插件 ? bin elasticsearch-plugin list warning: ignoring JAVA_HOME/Library/Java/JavaVirtualMachines/jdk1.8.0_…

(原創)SAP ATP可用量檢查 OPJJ功能配置說明(900+字!)

前言&#xff1a;經常在ATP遇到問題&#xff0c;每次上網找都沒有相關資料&#xff0c;一氣之下直接在官網找資料收集&#xff0c;已整理相關字段與大家分享&#xff0c;避免大家走彎路附上我個人很久之前的的測試結果&#xff1a;具體字段控制說明檢查不考慮補貨提前期關聯字段…

Unity資源管理——操作一覽(編輯器下 運行時)

本文由 NRatel 歷史筆記整理而來&#xff0c;如有錯誤歡迎指正。 資源管理是Unity游戲開發中的重頭工作之一。 以下按【編輯器下】和 【運行時】&#xff0c;共十多個步驟&#xff0c;一覽總體流程&#xff08;內容巨大&#xff0c;不細展開&#xff09;。 一、資源導入Unity【…

Sentinel vs Resilience4j vs Bucket4j:分布式限流方案對比與實戰

Sentinel vs Resilience4j vs Bucket4j&#xff1a;分布式限流方案對比與實戰 在高并發微服務架構中&#xff0c;合理的限流策略是保護系統穩定性與可用性的關鍵。本文將從問題背景入手&#xff0c;對 Sentinel、Resilience4j 和 Bucket4j 三種常見的分布式限流方案進行對比&am…

Spring Boot 3.5.3 集成 Log4j2 日志系統

在 Spring Boot 3.5.3 中&#xff0c;要將默認的 Logback 替換為 Log4j2&#xff0c;需要以下步驟&#xff1a;1. 添加 Log4j2 依賴在 pom.xml中排除默認的 Logback 依賴并添加 Log4j2 依賴&#xff1a;<dependencies><!-- 排除默認的 Logback --><dependency&g…