如何正确执行Maven命令?

环境准备(先决条件)

  1. 安装Java
    Maven依赖Java环境:

    • 下载JDK 8+(Oracle官网 或 OpenJDK)

    • 配置环境变量:

      # Windows:系统属性 → 环境变量
      JAVA_HOME = C:\Program Files\Java\jdk-17
      # Linux/macOS:添加到 ~/.bashrc 或 ~/.zshrc
      export JAVA_HOME=/usr/lib/jvm/jdk-17
      export PATH=$JAVA_HOME/bin:$PATH
  2. 安装Maven

    • 下载Maven 3.6.3+(官网)

    • 配置环境变量:

      # Windows
      M2_HOME = C:\apache-maven-3.8.6
      PATH = %M2_HOME%\bin;%PATH%
      # Linux/macOS
      export M2_HOME=/opt/apache-maven-3.8.6
      export PATH=$M2_HOME/bin:$PATH
    • 验证安装:

      mvn -v  # 输出Maven及Java版本即成功

mvn 命令基础结构

mvn [选项] <生命周期阶段> [<生命周期阶段>...]
  • 选项(Options):控制Maven行为的参数(如 -D 定义属性)。
  • 生命周期阶段(Phase):Maven构建流程的步骤(如 compiletest)。

核心生命周期命令

Maven构建基于生命周期模型,常用阶段如下:
| 命令 | 作用 | 示例 |
|———————|——————————-|———————–|
| mvn clean | 删除target目录(清理构建) | mvn clean |
| mvn compile | 编译主代码 | mvn compile |
| mvn test | 运行单元测试 | mvn test |
| mvn package | 打包项目(JAR/WAR) | mvn package |
| mvn install | 安装到本地仓库 | mvn install |
| mvn deploy | 部署到远程仓库(如Nexus) | mvn deploy |
| mvn verify | 集成测试 | mvn verify |

链式执行

mvn clean package  # 先清理再打包
mvn test install   # 运行测试后安装到本地

常用选项(参数)

选项 说明 示例
-D<属性名>=<值> 定义系统属性(覆盖pom.xml配置) mvn test -DskipTests=true
-P<profile> 激活指定的构建配置(Profile) mvn install -Pprod
-e 显示详细错误信息(排障必备) mvn compile -e
-X 开启Debug模式(输出完整执行日志) mvn package -X
-U 强制更新远程仓库的依赖(避免缓存问题) mvn clean install -U
-pl 构建指定模块(多模块项目) mvn install -pl module-a
-am 同时构建依赖模块(需配合-pl mvn install -pl module-a -am

实战示例

  1. 跳过测试并打包
    mvn clean package -DskipTests
  2. 激活生产配置并部署
    mvn clean deploy -Pprod
  3. 多模块构建
    # 仅构建module-a及其依赖
    mvn install -pl module-a -am

常见问题解决

  1. 命令未找到(mvn: command not found

    • 检查PATH环境变量是否包含Maven的bin目录。
    • 重启终端或执行 source ~/.bashrc(Linux/macOS)。
  2. 依赖下载失败

    • 使用 -U 强制更新:mvn -U clean install
    • 检查网络或镜像配置(~/.m2/settings.xml)。
  3. 构建错误(如编译失败)

    • 添加 -e-X 查看详细日志:mvn compile -e
    • 确认JDK版本与pom.xml<java.version>一致。
  4. 插件执行报错

    • 更新Maven版本(兼容性问题)。
    • 检查插件配置(如maven-compiler-plugin)。

最佳实践

  1. 优先使用官方仓库:配置阿里云镜像加速(修改settings.xml):
    <mirror>
      <id>aliyun</id>
      <url>https://maven.aliyun.com/repository/public</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  2. 定期清理本地仓库
    • 删除 ~/.m2/repository 中无用依赖(节省空间)。
  3. 使用Wrapper避免环境问题
    mvn wrapper:wrapper   # 生成mvnw脚本(跨平台兼容)
    ./mvnw clean install  # 代替mvn命令

引用说明

  • Maven官方文档:Apache Maven Documentation
  • JDK安装指南:Oracle Java Documentation
  • 环境变量配置:Maven Installation Guide
  • 阿里云镜像仓库:Maven Mirror Settings
    基于Maven 3.8.6及Java 17验证,遵循Apache Maven最佳实践,建议定期查阅官方文档获取更新。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4671.html

(0)
酷番叔酷番叔
上一篇 2025年6月16日 15:32
下一篇 2025年6月16日 16:08

相关推荐

  • PATH不设置会怎样

    PATH是操作系统中的环境变量,用于指定可执行程序(如 .exe、.bat 或脚本)的搜索路径,当你在命令行输入一个命令(如 python 或 git)时,系统会按顺序在PATH列出的目录中查找匹配的程序,查看当前PATHWindows 系统打开命令提示符(CMD)或 PowerShell输入:echo %PA……

    2025年8月5日
    6200
  • 安全元数据,数据安全的核心支撑还是潜在隐患?

    安全元数据是描述数据安全属性、访问规则、处理流程及合规要求的结构化信息,是构建数据安全体系的基础性支撑,它通过标准化、可机读的方式,为数据安全管控提供上下文信息,帮助组织实现从“被动防御”到“主动治理”的转变,在数据量爆炸式增长、隐私保护法规趋严的背景下,安全元数据的重要性日益凸显,已成为数据安全治理的核心要素……

    2025年11月13日
    2100
  • iOS如何通过命令行连接VPS?

    在iOS设备上通过命令行连接VPS(虚拟专用服务器)是远程管理和操作服务器的常用方式,尤其适合需要频繁执行命令或脚本的用户,由于iOS系统的封闭性,无法直接使用传统的终端工具,但借助第三方SSH客户端应用即可实现,以下是详细步骤和注意事项,帮助你在iOS上顺利连接VPS,前期准备工作在开始连接前,需确保以下信息……

    2025年8月24日
    6000
  • 安全情报打折,是可信度缩水还是防护力告急?

    安全情报是组织抵御网络威胁、降低安全风险的核心资产,其质量与价值直接关系到安全防护的效能,然而在实际应用中,安全情报常因多种因素出现“打折”现象,即情报的准确性、时效性、完整性或实用性低于预期,无法有效支撑决策与防护,最终导致安全防护体系的效果大打折扣,这种“打折”并非单一环节的问题,而是贯穿情报全生命周期的系……

    2025年10月20日
    3300
  • 怎么用命令删除不同列的重复值

    使用 awk 命令结合条件判断来删除不同列的重复值,具体操作需根据

    2025年8月18日
    5700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信