当前位置: 首页 > news >正文

Windows 上安装下载并配置 Apache Maven

1. 下载 Maven

  1. 访问官网
    打开 Apache Maven 下载页面。

  2. 选择版本
    下载最新的 Binary zip archive(例如 apache-maven-3.9.9-bin.zip)。

    注意:不要下载 -src 版本(那是源码包)。

2. 解压 Maven

  1. 将下载的 apache-maven-3.9.6-bin.zip 解压到目标目录,例如:

(注意不要有多余的空格,如下就行)

C:\Program Files\apache-maven-3.9.9

3. 配置环境变量

(1) 设置 MAVEN_HOME
  1. 右键 此电脑 → 属性 → 高级系统设置 → 环境变量

  2. 在 系统变量 中点击 新建

    • 变量名:MAVEN_HOME

    • 变量值:C:\Program Files\apache-maven-3.9.9(你的 Maven 解压路径)

如何验证配置是否正确?

  1. 打开命令提示符(CMD),运行:

    echo %MAVEN_HOME%
    应输出:C:\Program Files\apache-maven-3.9.9
(2) 添加 Maven 到 PATH
  1. 在 系统变量 中找到 Path → 编辑 → 新建,添加:

    %MAVEN_HOME%\bin
  2. 点击 确定 保存所有窗口。

4. 验证安装(注意要重启后环境配置才能生效)

  1. 打开 命令提示符(CMD) 或 PowerShell,运行:

    mvn -version
  2. 成功输出示例

    Apache Maven 3.9.9 (...)
    Maven home: C:\Program Files\apache-maven-3.9.9
    Java version: 1.8.0_451, vendor: Oracle Corporation
    

5. 配置 Maven 镜像(可选,加速下载)

  1. 打开 Maven 的配置文件:

    C:\Program Files\apache-maven-3.9.9\conf\settings.xml

  2. 在 <mirrors> 标签内添加阿里云镜像:

    运行

    <mirror><id>aliyunmaven</id><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url><mirrorOf>central</mirrorOf>
    </mirror>
    

常见问题解决

1. mvn -version 报错 “不是内部命令”
  • 检查 MAVEN_HOME 和 PATH 是否配置正确。

  • 重启 CMD 或 IDE(如 IntelliJ IDEA)使环境变量生效。

2. Java 版本不兼容
  • Maven 需要 JDK 1.7+,确保已安装并配置 JAVA_HOME

    java -version  # 验证 Java
    echo %JAVA_HOME%  # 检查变量
3. 依赖下载失败
  • 检查网络是否正常,或按 步骤 5 配置镜像。


总结

步骤操作
1. 下载从官网获取 apache-maven-*-bin.zip
2. 解压放到无空格路径(如 C:\Program Files\
3. 环境变量设置 MAVEN_HOME 和 PATH
4. 验证mvn -version 检查版本
5. 镜像加速修改 settings.xml 使用阿里云

现在你可以用 Maven 管理 Java/Hadoop 项目了!如果需要编译 Hadoop 源码,只需在源码目录运行:

这条 Maven 命令是用于 编译 Hadoop 源码 或类似大型 Java 项目的专用指令

mvn clean package -Pdist,native -DskipTests -Dtar
参数/选项作用
mvn clean清理之前编译生成的 target 目录
package编译源码并打包(生成 JAR/WAR 等)
-Pdist,native激活 Maven 的 dist 和 native 两个 Profile(特定编译配置)
-DskipTests跳过单元测试(加速编译)
-Dtar生成最终的 .tar.gz 分发包(Hadoop 专用)

详细说明

  1. -Pdist,native

    • dist Profile:
      启用 Hadoop 的分布式打包配置,生成包含所有依赖的完整分发包。

    • native Profile:
      编译 Hadoop 的本地库(如压缩、加密等功能的 C/C++ 扩展,通过 JNI 调用)。

      若未启用,Hadoop 会回退到纯 Java 实现(性能可能降低)。

  2. -DskipTests

    • 跳过 mvn test 阶段,避免耗时的单元测试和集成测试。

    • 适用场景:快速验证编译是否通过,或测试已在其他环节完成。

  3. -Dtar

    • 要求 Maven 最终生成一个 .tar.gz 格式的压缩包(Hadoop 的二进制分发包)。

    • 输出路径:hadoop-dist/target/hadoop-3.3.6.tar.gz(以 Hadoop 3.3.6 为例)。

 

典型应用场景

  1. 从源码编译 Hadoop

    • 当你需要修改 Hadoop 源码或使用特定平台的本地库时,通过此命令生成定制化版本。

    • 示例:

      # 进入 Hadoop 源码目录
      cd hadoop-3.3.6-src
      # 执行编译
      mvn clean package -Pdist,native -DskipTests -Dtar
  2. 跨平台兼容性

    • 在 Linux 上编译时,-Pnative 会生成针对当前系统的本地库(如 .so 文件)。

    • 在 Windows 上需额外安装 Windows SDK 和 CMake。


注意事项

  1. 依赖环境

    • 需提前安装:

      • JDK 8/11

      • Maven 3.6+

      • GCC/CMake(若启用 -Pnative

    • 网络畅通(需下载大量依赖)。

  2. 时间与资源

    • 首次编译可能耗时 30 分钟~2 小时(依赖下载和本地库编译)。

    • 建议内存 ≥4GB,磁盘空间 ≥10GB。

  3. 常见问题

    • 编译失败:检查错误日志,常见原因包括:

      • 网络问题(依赖下载失败)

      • 缺少本地工具链(如 makeautoconf

      • 版本不兼容(如 JDK 过高)

    • 跳过本地库:移除 -Pnative 仅编译 Java 部分。


简化命令对比

命令用途
mvn clean package仅编译 Java 部分,不打包分发版
mvn package -DskipTests跳过测试,快速打包
mvn package -Pdist -Dtar生成分发包但不编译本地库

通过此命令,你可以高效构建定制化的 Hadoop 分发版。如需进一步优化,可调整 pom.xml 中的 Profile 配置。

 

http://www.xdnf.cn/news/494065.html

相关文章:

  • JVM 机制
  • 学习笔记(C++篇)—— Day 6
  • 十二、Hive 函数
  • 数据湖与数据仓库融合:Hudi、Iceberg、Delta Lake 实践对比
  • JavaScript入门【3】面向对象
  • Bellman - Ford 算法与 SPFA 算法求解最短路径问题 ——从零开始的图论讲解(4)
  • Predict Podcast Listening Time-(回归+特征工程+xgb)
  • Git合并多个提交方法详解
  • C 语言学习笔记(数组)
  • WL-G4048 Multi-Port PCIe 4.0 Switch
  • AI最新资讯,GPT4.1加入网页端、Claude 3.7 Sonnet携“极限推理”发布在即
  • 解决将其他盘可用空间,移植到C盘
  • 2025第三届盘古石杯初赛(计算机部分)
  • 直接从图片生成 html
  • 传统轮椅逆袭!RDK + 激光雷达如何重塑出行体验?
  • TII-2024《AGP-Net: Adaptive Graph Prior Network for Image Denoising》
  • C/C++——动态爱心
  • 信贷风控笔记5——风控贷中策略笔记(面试准备13)
  • 【匹配】Hirschberg
  • Baklib加速企业AI数据智理转型
  • 前台页面卡顿,如何去排查问题
  • 【源码级开发】Qwen3接入MCP,企业级智能体开发实战!
  • 软考第七章知识点总结
  • 力扣-39.组合总和
  • 开源情报如何成为信息攻防的关键资源
  • 科技型中小企业基本条件及与高新技术企业的区别
  • TIP-2021《SRGAT: Single Image Super-Resolution With Graph Attention Network》
  • 多线程代码案例-2 阻塞队列
  • 五月份嵌入式面试总结
  • Hot100-链表-JS