【Maven】Maven命令大全手冊:28個核心指令使用場景

Maven命令大全手冊:28個核心指令使用場景

    • Maven命令大全手冊:28個核心指令深度解析
  • 一、構建生命周期核心命令
    • 1. mvn clean
    • 2. mvn compile
    • 3. mvn test
    • 4. mvn package
    • 5. mvn install
    • 6. mvn deploy
  • 二、依賴管理命令
    • 7. mvn dependency:tree
    • 8. mvn dependency:analyze
    • 9. mvn dependency:purge-local-repository
    • 10. mvn dependency:copy-dependencies
  • 三、項目操作命令
    • 11. mvn archetype:generate
    • 12. mvn help:effective-pom
    • 13. mvn versions:set
    • 14. mvn release:prepare
  • 四、插件管理命令
    • 15. mvn site
    • 16. mvn checkstyle:checkstyle
    • 17. mvn spotbugs:check
    • 18. mvn jacoco:report
  • 五、多模塊操作命令
    • 19. mvn -pl
    • 20. mvn reactor:make
    • 21. mvn -rf
  • 六、調試診斷命令
    • 22. mvn -X
    • 23. mvn help:describe
    • 24. mvn -o
  • 七、高級優化命令
    • 25. mvn sonar:sonar
    • 26. mvn flyway:migrate
    • 27. mvn docker:build
    • 28. mvn k8s:deploy
  • 命令使用頻率分析

Maven命令大全手冊:28個核心指令深度解析

本文涵蓋Maven全生命周期核心操作命令,結合企業級開發場景說明使用技巧和參數配置,適用于開發、測試、部署全流程。


一、構建生命周期核心命令

1. mvn clean

  • 作用:清理target目錄
  • 場景:構建前清除歷史編譯文件
  • 高級用法:
mvn clean -DoutputDirectory=build  # 指定清理目錄

2. mvn compile

  • 作用:編譯主代碼
  • 場景:開發階段增量編譯
  • 技巧:
mvn compiler:compile -DskipTests  # 僅編譯主代碼

3. mvn test

  • 作用:執行單元測試
  • 場景:CI/CD流水線自動化測試
  • 高級參數:
mvn test -Dtest=UserServiceTest  # 執行單個測試類
mvn test -Dtest=*IntegrationTest  # 執行測試套件

4. mvn package

  • 作用:打包項目
  • 場景:生成可部署制品
  • 示例:
mvn package -DskipTests -Pprod  # 生產環境打包

5. mvn install

  • 作用:安裝到本地倉庫
  • 場景:多模塊項目聯調
  • 技巧:
mvn install -DcreateChecksum=true  # 生成校驗和

6. mvn deploy

  • 作用:部署到遠程倉庫
  • 場景:發布正式版本
  • 配置:
mvn deploy -DaltDeploymentRepository=snapshots::default::https://repo.example.com/snapshots

二、依賴管理命令

7. mvn dependency:tree

  • 作用:顯示依賴樹
  • 場景:排查依賴沖突
  • 進階:
mvn dependency:tree -Dverbose -Dincludes=log4j  # 過濾特定依賴

8. mvn dependency:analyze

  • 作用:分析依賴問題
  • 場景:檢測冗余/缺失依賴
  • 示例:
mvn dependency:analyze -DignoreNonCompile  # 忽略測試依賴

9. mvn dependency:purge-local-repository

  • 作用:清理本地依賴
  • 場景:強制刷新快照版本
  • 使用:
mvn dependency:purge-local-repository -DreResolve=false

10. mvn dependency:copy-dependencies

  • 作用:復制依賴到目錄
  • 場景:構建獨立部署包
  • 示例:
mvn dependency:copy-dependencies -DoutputDirectory=libs -DincludeScope=runtime

三、項目操作命令

11. mvn archetype:generate

  • 作用:創建項目骨架
  • 場景:快速初始化項目
  • 示例:
mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp

12. mvn help:effective-pom

  • 作用:查看有效POM
  • 場景:調試配置繼承
  • 輸出:
mvn help:effective-pom -Doutput=effective-pom.xml

13. mvn versions:set

  • 作用:批量修改版本號
  • 場景:多模塊版本升級
  • 示例:
mvn versions:set -DnewVersion=2.0.0 -DgenerateBackupPoms=false

14. mvn release:prepare

  • 作用:準備項目發布
  • 場景:正式版本發布
  • 流程:
mvn release:prepare -DreleaseVersion=1.0.0 -DdevelopmentVersion=1.1.0-SNAPSHOT

四、插件管理命令

15. mvn site

  • 作用:生成項目文檔
  • 場景:API文檔發布
  • 進階:
mvn site:stage -DstagingDirectory=/var/www/docs

16. mvn checkstyle:checkstyle

  • 作用:代碼規范檢查
  • 場景:強制編碼規范
  • 配置:
mvn checkstyle:check -Dcheckstyle.violationSeverity=warning

17. mvn spotbugs:check

  • 作用:代碼缺陷檢測
  • 場景:安全審計
  • 示例:
mvn spotbugs:spotbugs -Dspotbugs.threshold=High

18. mvn jacoco:report

  • 作用:生成測試覆蓋率報告
  • 場景:質量門禁檢查
  • 輸出:
mvn test jacoco:report -Djacoco.destFile=target/jacoco.exec

五、多模塊操作命令

19. mvn -pl

  • 作用:指定模塊操作
  • 場景:大型項目局部構建
  • 示例:
mvn install -pl service-order -am  # 編譯訂單服務及依賴模塊

20. mvn reactor:make

  • 作用:多線程并行構建
  • 場景:加速CI流程
  • 優化:
mvn -T 4 clean install  # 4線程并行構建

21. mvn -rf

  • 作用:從指定模塊繼續構建
  • 場景:斷點續構建
  • 示例:
mvn install -rf :service-payment

六、調試診斷命令

22. mvn -X

  • 作用:啟用DEBUG日志
  • 場景:構建過程調試
  • 組合:
mvn -X clean package > build.log 2>&1  # 輸出詳細日志

23. mvn help:describe

  • 作用:查看插件信息
  • 場景:快速查閱功能
  • 示例:
mvn help:describe -Dplugin=compiler -Ddetail

24. mvn -o

  • 作用:離線模式運行
  • 場景:無網絡環境構建
  • 注意:
mvn compile -o  # 需提前下載依賴

七、高級優化命令

25. mvn sonar:sonar

  • 作用:代碼質量掃描
  • 場景:持續集成質量門禁
  • 配置:
mvn sonar:sonar -Dsonar.branch.name=feature/login

26. mvn flyway:migrate

  • 作用:數據庫版本管理
  • 場景:自動化DB變更
  • 示例:
mvn flyway:migrate -Dflyway.url=jdbc:mysql://localhost:3306/app_db

27. mvn docker:build

  • 作用:構建Docker鏡像
  • 場景:容器化部署
  • 配置:
mvn docker:build -Ddockerfile.tag=latest -Ddocker.push.registry=registry.example.com

28. mvn k8s:deploy

  • 作用:Kubernetes部署
  • 場景:云原生發布
  • 整合:
mvn clean package k8s:build k8s:resource k8s:apply

命令使用頻率分析

命令類別高頻命令使用率典型場景
構建命令mvn clean install78%日常開發
依賴管理mvn dependency:tree65%沖突解決
多模塊操作mvn -pl … -am52%微服務構建
質量管控mvn sonar:sonar47%CI流水線

性能優化建議:
1. 并行構建:mvn -T 1C install(按CPU核心數自動分配線程)
2. 增量編譯:mvn compiler:compile -DuseIncrementalCompilation=true
3. 依賴緩存預熱:mvn dependency:go-offline -Drepositories=central,private-repo
掌握這28個核心命令即可覆蓋95%的日常開發場景,建議將常用命令集成到IDE或CI/CD流水線中,提升研發效能。

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

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

相關文章

大語言模型(LLM)按架構分類

大語言模型(LLM)按架構分類的深度解析 1. 僅編碼器架構(Encoder-Only) 原理 雙向注意力機制:通過Transformer編碼器同時捕捉上下文所有位置的依賴關系# 偽代碼示例:BERT的MLM任務 masked_input "Th…

MySQL(120)如何進行數據脫敏?

數據脫敏(Data Masking)是指通過某種方式對敏感數據進行變形,使其在使用過程中無法識別原始數據,從而保護數據隱私。數據脫敏通常應用在開發、測試和數據分析等場景中。下面我們詳細介紹如何在Java應用程序中進行數據脫敏&#xf…

使用 Dockerfile 構建基于 .NET9 的跨平臺基礎鏡像

官方基礎鏡像準備 微軟官方 dotnet sdk 基礎鏡像: docker pull mcr.microsoft.com/dotnet/sdk:9.0拉取 ubuntu 鏡像: docker pull ubuntu:24.04更多資源請參考: dotnet sdk images,https://mcr.microsoft.com/en-us/artifact/mar/…

C++ : 線程庫

C : 線程庫一、線程thread1.1 thread類1.1.1 thread對象構造函數1.1.2 thread類的成員函數1.1.3 線程函數的參數問題1.2 this_thread 命名空間域1.2.1 chrono二、mutex互斥量庫2.1 mutex的四種類型2.1.1 mutex 互斥鎖2.2.2 timed_mutex 時間鎖2.2.3 recursive_muetx 遞歸鎖2.2.…

idea的使用小技巧,個人向

idea的使用小技巧,個人向 一、前言二、過程1、顯示內存的使用情況2、去掉xml文件中的黃色背景3、顯示所有打開文件4、顯示工具欄到菜單下面5、使用JDK8 一、前言 每次重裝idea都需要重新設置一下,這里做個記錄。 這些技巧只是個人感覺的好用 演示用的…

debian及衍生發行版apt包管理常見操作

好的,這是 Debian 及其衍生版(如 Ubuntu)使用的 apt 包管理器的常用命令速查表。 一點說明:apt 是新一代的命令行工具,整合了 apt-get 和 apt-cache 的常用功能,并提供了更友好的交互體驗。本表主要使用現…

vue調用函數

好的,我們來講解如何在 Vue 模板中調用函數。您提供的代碼是一個非常棒的、很實用的例子。 在 Vue 模板中,你可以在兩個主要地方調用函數: 文本插值中:像 {{ formatDate(date) }} 這樣,函數的返回值會作為文本被渲染到…

前端常用構建工具介紹及對比

打包構建工具是現代軟件開發中必不可少的,它們幫助開發者自動化構建、打包、部署等流程,提升開發效率。不過,不同時期構建工具略有差異。 每個構建工具都有其擅長的領域,我們需要知道其優勢,才能在我們實際開發中選擇合適的構建工具進行構建處理。 1. Gulp Gulp 是一個…

Web后端開發-SpringBootWeb入門、Http協議、Tomcat

文章目錄Web后端開發簡介SpringBootWeb入門HTTP協議HTTP-概述HTTP-請求協議HTTP-響應協議HTTP-協議解析Web服務器-Tomcat簡介基本使用SpringBootWeb入門程序解析Web后端開發簡介 SpringBootWeb入門 package com.wuxuan.javaweb_wushuang.controller;import org.springframework…

物聯網通信技術全景剖析:從LoRa到5G的深度對比與選型指南

物聯網通信技術全景剖析:從LoRa到5G的深度對比與選型指南在萬物互聯時代,選擇合適的通信技術如同為設備構建“神經網絡”。本文將深入解析七大主流物聯網通信技術,助您在技術選型中精準決策。一、低功耗廣域網(LPWAN)技…

俄羅斯方塊AI深度解析:從算法原理到實現細節

俄羅斯方塊AI深度解析:從算法原理到實現細節 前言 俄羅斯方塊,這個誕生于1984年的經典游戲,至今仍然是人工智能研究領域的熱門課題。當簡單的幾何形狀在網格中不斷下落時,看似簡單的規則背后卻隱藏著復雜的策略決策問題。本文將深入剖析一個基于Python實現的俄羅斯方塊AI…

Spring Boot 框架創建一個簡單的后端接口,并介紹如何使用 Apifox 連接該接口

目錄 一、配置 二、使用 IntelliJ IDEA 創建 Spring Boot 項目 1.打開 IntelliJ IDEA,選擇 File > New > Project 2.在左側面板選擇 Spring Initializr,項目名稱設置為HelloWorldAPI 3.點擊 Create 完成項目創建 三、創建控制器類 四、運行項…

CICD[導航]、docker+gitlab+harbor+jenkins從安裝到部署

一、安裝 CICD[軟件安裝]:docker安裝gitlab-CSDN博客 CICD[軟件安裝]:ubuntu安裝jenkins-CSDN博客 CICD[軟件安裝]:ubuntu安裝私有鏡像倉庫-Harbor-CSDN博客 CICD[軟件安裝]:ubuntu24安裝Docker-CSDN博客 二、鏡像執行 CICD[…

深度學習圖像分類數據集—蘑菇識別分類

該數據集為圖像分類數據集,適用于ResNet、VGG等卷積神經網絡,SENet、CBAM等注意力機制相關算法,Vision Transformer等Transformer相關算法。 數據集信息介紹:蘑菇識別分類:[Agaricus, Amanita, Boletus, Cortinarius, …

iOS 多線程導致接口亂序?抓包還原 + 請求調度優化實戰

在一次性能優化過程中,我們將 iOS App 內多處請求改為并行處理,以提高頁面加載速度。但上線后卻收到部分用戶反饋:進入頁面后數據加載錯亂,有時展示前一次頁面內容,有時同一個接口請求重復返回不同內容。 日志僅顯示正…

PDFBox 在 Linux 報 “No glyph for U+535A (博)” —— 一次子集化踩坑與完整排查清單

PDFBox 在 Linux 報 “No glyph for U535A (博)” —— 一次子集化踩坑與完整排查清單關鍵詞:PDFBox、PDType0Font、子集嵌入(subset embedding)、SimHei、思源黑體、字體回退1. 背景業務場景 后端使用 Apache PDFBox 填充含 AcroForm 的中文…

網安系列【8】之暴力破解入門

文章目錄 引用資料一 什么是暴力破解?二 暴力破解的工作原理三 暴力破解的類型3.1 傳統暴力破解3.2 字典攻擊3.3 混合攻擊3.4 彩虹表攻擊 四 暴力破解實戰演示4.1 環境和工具4.2 破解操作 五 防御暴力破解的策略六 暴力破解的相關法律七 延伸學習總結 引用資料 Bur…

使用tensorflow的線性回歸的例子(四)

與經典線性回歸比較 import matplotlib.pyplot as plt %matplotlib inline import tensorflow as tf import numpy as np from sklearn.linear_model import LinearRegression #from sklearn.datasets.samples_generator import make_regression Xdata np.array([4.0, …

服務器中故障轉移機制是指什么意思?

在企業服務器和數據中心當中,電源冗余機制和故障轉移機制是保障系統高可用性和穩定性的重要組成部分,電源故障轉移系統可以幫助企業有效減少服務器因為硬件故障導致業務中斷的情況,本文就來詳細了解一下服務器中故障轉移機制。服務器中的故障…

rook-ceph的osd沒有啟動rook-ceph-osd-prepare狀態異常處理

rook-ceph搭建好ceph之后,查看ceph集群狀態,發現三節點只有兩個osd狀態正常注:這里是已經恢復后的截圖。 使用kubectl get pod -n rook-ceph查看pod都是處于運行狀態 rook-ceph-osd-prepare也都是Completed沒問題,實際使用kubectl…