Maven 构建命令详解

devtools/2025/2/8 7:40:52/

1. Maven 构建命令概述

Maven 是 Java 生态中最流行的构建工具之一,它提供了一套标准化的构建命令,使得开发者可以轻松管理项目的编译、测试、打包、安装和部署等任务。

本篇文章将深入解析 Maven 中最常用的构建命令,包括:

  • mvn clean
  • mvn compile
  • mvn test
  • mvn package
  • mvn install
  • mvn deploy
  • 其他常见命令,如 mvn dependency:treemvn help:effective-pom 等。

2. Maven 构建命令详解

2.1 mvn clean

作用:清除 target/ 目录,删除之前构建的文件,确保下一次构建的干净环境。

mvn clean

执行过程

  • 删除 target/ 目录
  • 移除编译生成的 class 文件、打包的 JAR 文件等

适用场景

  • 在重新构建项目之前,避免旧的编译文件影响新版本。

示例

mvn clean package

效果

  • 先清理 target/ 目录,再进行打包。

2.2 mvn compile

作用:编译 src/main/java 目录下的源代码,并生成 .class 文件到 target/classes/ 目录。

mvn compile

执行过程

  • 解析 pom.xml
  • 下载项目依赖(如果依赖不存在)
  • 编译 src/main/java 目录下的 Java 源代码
  • 生成 .class 文件到 target/classes/

适用场景

  • 当需要仅编译代码而不执行测试时。

示例

mvn clean compile

效果

  • 先清理 target/ 目录,然后编译代码。

2.3 mvn test

作用:编译 src/test/java 目录下的测试代码,并运行单元测试(JUnit、TestNG)。

mvn test

执行过程

  • 先执行 mvn compile
  • 编译 src/test/java 目录下的测试代码
  • 运行测试(JUnit 或 TestNG)

适用场景

  • 运行项目中的单元测试,确保代码逻辑正确。

示例

mvn clean test

效果

  • 先清理 target/ 目录,然后运行所有测试。

2.4 mvn package

作用:将编译后的代码打包(如 JAR、WAR)到 target/ 目录。

mvn package

执行过程

  • 先执行 mvn test
  • 打包 target/classes/ 下的文件为 JAR 或 WAR

适用场景

  • 当需要生成可部署的 JAR/WAR 文件时。

示例

mvn clean package

效果

  • 清理旧的 target/ 目录,编译代码,运行测试,最终打包 JAR/WAR。

2.5 mvn install

作用:将打包好的 JAR/WAR 文件安装到 本地 Maven 仓库~/.m2/repository/),供其他项目使用。

mvn install

执行过程

  • 先执行 mvn package
  • target/ 目录中的 JAR/WAR 文件复制到本地 Maven 仓库

适用场景

  • 当开发多个模块(Module)时,一个模块可以安装到本地仓库,以便另一个模块引用。

示例

mvn clean install

效果

  • 清理旧的构建,编译代码,运行测试,打包,并安装到本地仓库。

2.6 mvn deploy

作用:将构建好的 JAR/WAR 部署到 远程 Maven 仓库,如 Nexus、Artifactory。

mvn deploy

执行过程

  • 先执行 mvn install
  • 上传 target/ 目录中的 JAR/WAR 文件到远程 Maven 仓库

适用场景

  • 当开发的库需要在团队内部共享时,可以部署到私有仓库(如 Nexus)。

示例

mvn clean deploy

效果

  • 清理、编译、测试、打包,并上传到远程仓库。

3. 其他常用 Maven 命令

3.1 查看依赖树

作用:列出所有项目依赖,包括传递性依赖,帮助分析依赖冲突。

mvn dependency:tree

示例

mvn dependency:tree

输出

[INFO] com.example:my-app:jar:1.0-SNAPSHOT
[INFO] ├─ org.springframework:spring-core:jar:5.3.9:compile
[INFO] ├─ commons-logging:commons-logging:jar:1.2:compile

3.2 强制更新依赖

作用:强制更新所有依赖,确保拉取最新版本。

mvn clean install -U

3.3 显示 Maven 有效的 POM 配置

作用:查看合并后的 pom.xml,帮助调试依赖管理。

mvn help:effective-pom

3.4 跳过测试

作用:构建时跳过单元测试,提高构建速度。

mvn clean package -DskipTests

3.5 运行单个测试

作用:只运行指定的测试类,而不是运行所有测试。

mvn test -Dtest=MyTestClass

3.6 运行 Web 项目

作用:如果使用 tomcat7-maven-plugin,可以直接运行 Web 项目。

mvn tomcat7:run

4. Maven 常用命令总结

命令作用
mvn clean删除 target/ 目录,清理构建文件
mvn compile编译 src/main/java 目录中的代码
mvn test运行 src/test/java 目录下的测试代码
mvn package生成 JAR/WAR 文件
mvn install将 JAR/WAR 安装到本地 Maven 仓库
mvn deploy将 JAR/WAR 部署到远程仓库
mvn dependency:tree查看项目的依赖树
mvn clean install -U强制更新依赖
mvn help:effective-pom查看合并后的 POM 配置
mvn clean package -DskipTests跳过测试打包
mvn test -Dtest=MyTestClass只运行指定的测试类

5. 总结

  • Maven 提供了一套标准的构建命令,涵盖了 清理、编译、测试、打包、安装、部署 等功能。
  • 通过 mvn clean install 可以完成一次完整的构建,并安装到本地仓库。
  • 通过 mvn deploy 可以将构建好的 JAR/WAR 部署到远程仓库,供团队共享。
  • 通过 mvn dependency:tree 可以分析依赖关系,帮助解决依赖冲突。

熟练掌握这些命令,可以极大提高开发效率,优化构建流程!🚀


http://www.ppmy.cn/devtools/157043.html

相关文章

基于SpringBoot养老院平台系统功能实现五

一、前言介绍: 1.1 项目摘要 随着全球人口老龄化的不断加剧,养老服务需求日益增长。特别是在中国,随着经济的快速发展和人民生活水平的提高,老年人口数量不断增加,对养老服务的质量和效率提出了更高的要求。传统的养…

VIVADO生成DCP和EDF指南

VIVADO生成DCP和EDF 文章目录 VIVADO生成DCP和EDF前言一、DCP封装二、EDF封装 前言 详细步骤就不贴图了,网上一大堆 在Vivado中,常用的三种封装形式有三种: ● IP ● edif ● dcp 在下文之前,先看几个概念 out_of_context&…

基于深度学习的医疗器械分类编码映射系统:设计、实现与优化

一、引言 1.1 研究内容与方法 本研究旨在设计并实现一个基于深度学习的医疗器械分类编码映射系统,以解决医疗器械分类编码管理中存在的问题,提高医疗器械管理的效率和准确性。具体研究内容包括以下几个方面: 系统需求分析:深入研究国内外主流医疗器械编码体系,如中国的 …

stm32小白成长为高手的学习步骤和方法

我们假定大家已经对STM32的书籍或者文档有一定的理解。如不理解,请立即阅读STM32的文档,以获取最基本的知识点。STM32单片机自学教程 这篇博文也是一篇不错的入门教程,初学者可以看看,讲的真心不错。 英文好的同学&#xf…

互联网分布式ID解决方案

业界实现方案 1. 基于UUID 2. 基于DB数据库多种模式(自增主键、segment) 3. 基于Redis 4. 基于ZK、ETCD 5. 基于SnowFlake 6. 美团Leaf(DB-Segment、zkSnowFlake) 7. 百度uid-generator() 基于UUID生成唯一ID UUID生成策略 推荐阅读 DDD领域驱动与微服务架构设计设计模…

DeePseek结合PS!批量处理图片的方法教程

​ ​ 今天我们来聊聊如何利用deepseek和Photoshop(PS)实现图片的批量处理。 传统上,批量修改图片尺寸、分辨率等任务往往需要编写脚本或手动处理,而现在有了AI的辅助,我们可以轻松生成PS脚本,实现自动化处…

Debian安装Seafile

前言 Debian 无图形化界面通过 docker 安装 Seafile。我安装 Seafile12 没有成功,按照之前经验安装。 方法 安装docker 参考官方文档 Install Docker Engine on Debian。 设置 Docker’s apt repository. # Add Dockers official GPG key: sudo apt-get updat…

Elastic:为何它在技术领域备受瞩目

在当今大数据和云计算蓬勃发展的时代,数据的高效处理和分析成为了企业和开发者面临的关键挑战。Elastic 作为一款强大的开源搜索和分析引擎,凭借其卓越的性能和丰富的功能,在众多技术中脱颖而出,受到了广泛的关注和应用。它不仅改…