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.xmlsettings.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 ------------------------------------------------------------------------

相关推荐
YOU OU1 小时前
Redis基础常识与命令
数据库·redis·缓存
腻害兔1 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社2 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
萧瑟余晖3 小时前
JDK 26 新特性详解
java·开发语言
Database_Cool_3 小时前
OLTP 和 OLAP 区别详解:分析型数据库和事务型数据库怎么选(附阿里云 AnalyticDB MySQL 选型指南)
数据库·mysql·阿里云
爱写代码的阿森4 小时前
鸿蒙三方库 | harmony-utils之KvUtil键值型数据库操作详解
数据库·华为·harmonyos·鸿蒙·huawei
马优晨4 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
Database_Cool_4 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
姜太小白5 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql