Maven 安装与配置指南(适用于 Windows、Linux 和 macOS)

article/2025/6/23 6:28:13

Apache Maven 是一款广泛应用于 Java 项目的项目管理和构建工具。 本文提供在 Windows、Linux 和 macOS
系统上安装与配置 Maven 的详细步骤,旨在帮助开发者快速搭建高效的构建环境。


在这里插入图片描述

一、前置条件:安装 Java Development Kit (JDK)

Maven 依赖于 Java 运行环境,安装前需确保系统已安装 JDK(建议版本为 JDK 8 或更高)。

检查 JDK 安装情况

在终端或命令提示符中执行以下命令:

java -version

若系统返回 Java 版本信息,表示已正确安装 JDK。 若未安装,请先安装适合系统的 JDK 并配置相应的环境变量。


二、下载 Maven

访问 Apache Maven 官方下载页面:

https://maven.apache.org/download.cgi

选择最新稳定版本的二进制压缩包:(阿里云)

  • Windows:下载 .zip 文件
  • Linux/macOS:下载 .tar.gz 文件(腾讯云)

建议下载最新稳定版本(例如:3.9.9)。


三、安装与配置 Maven

1. 解压安装包

将下载的压缩包解压至指定目录,路径中避免包含空格或非 ASCII 字符。

示例路径:

  • WindowsC:\Program Files\apache-maven-3.9.9
  • Linux/macOS/usr/local/apache-maven-3.9.9

2. 配置环境变量

Windows 系统
  1. 设置系统环境变量 MAVEN_HOME,值为 Maven 的安装路径,例如:

    C:\Program Files\apache-maven-3.9.9

  2. 编辑系统环境变量 Path,添加:

    %MAVEN_HOME%\bin

Linux/macOS 系统
  1. 打开终端,编辑用户主目录下的 shell 配置文件:

    • Bash:~/.bashrc
    • Zsh:~/.zshrc
  2. 在文件末尾添加以下内容:(阿里云)

    export MAVEN_HOME=/usr/local/apache-maven-3.9.9
    export PATH=$MAVEN_HOME/bin:$PATH
    
  3. 保存文件并使配置生效:

    source ~/.bashrc  # 或 source ~/.zshrc
    

四、验证 Maven 安装

在终端或命令提示符中执行以下命令:

mvn -version

若系统返回 Maven 的版本信息,表示安装成功。


五、配置国内镜像源(可选)

为提高依赖包下载速度,可配置国内镜像源。

  1. 打开 Maven 安装目录下的 conf/settings.xml 文件。

  2. <mirrors> 标签中添加以下内容:

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

配置完成后,Maven 将优先从阿里云镜像下载依赖,提高下载速度。


六、配置本地仓库路径(可选)

默认情况下,Maven 将下载的依赖包存储在用户主目录下的 .m2/repository 目录中。 若需更改本地仓库位置,可在 settings.xml 文件中修改 <localRepository> 标签:

<localRepository>/path/to/your/repository</localRepository>

/path/to/your/repository 替换为期望的本地仓库路径。


七、在 IntelliJ IDEA 中配置 Maven(可选)

  1. 打开 IntelliJ IDEA,进入:

    File > Settings > Build, Execution, Deployment > Build Tools > Maven

  2. Maven home directory 中,选择 Maven 的安装路径。

  3. User settings file 中,选择配置了镜像源的 settings.xml 文件。

  4. 点击 ApplyOK 保存配置。

配置完成后,IntelliJ IDEA 将使用指定的 Maven 设置进行项目构建和依赖管理。


通过以上步骤,Maven 已在系统中成功安装并配置完毕。 可开始使用 Maven 管理和构建 Java 项目。

更多 Maven 使用方法和最佳实践,参考官方文档:

https://maven.apache.org/guides/index.html



http://www.hkcw.cn/article/vgNPxQkARh.shtml

相关文章

Java对象克隆:从浅到深的奥秘

浅克隆与深克隆在Java中的应用及区别 核心概念 浅克隆 复制对象时仅克隆基本数据类型字段&#xff0c;引用类型字段共享原对象引用。实现方式&#xff1a; class Person implements Cloneable {String name;Address address; // 引用类型字段Overrideprotected Object clone…

【HW系列】—日志介绍

文章目录 一、日志介绍二、Apache日志详解1. 日志存放位置2. 日志类型3. 日志级别4. 常用日志分析命令&#xff08;Linux环境&#xff09; 三、IIS日志详解四、日志分析工具&#xff1a;360星图 一、日志介绍 为什么要使用日志 故障诊断&#xff1a;快速定位系统错误根源安全审…

cuda_fp8.h错误

现象&#xff1a; cuda_fp8.h错误 原因&#xff1a; CUDA Toolkit 小于11.8,会报fp8错误&#xff0c;因此是cuda工具版本太低。通过nvcc --version查看 CUDA Toolkit 是 NVIDIA 提供的一套 用于开发、优化和运行基于 CUDA 的 GPU 加速应用程序的工具集合。它的核心作用是让开发…

内容中台构建数字化管理新路径

数字化内容管理核心架构 现代企业数字化内容管理的核心架构依托于动态元数据架构构建策略与多源数据智能整合体系的双重支撑。通过建立三层架构模型——数据采集层、逻辑处理层与应用服务层&#xff0c;系统能够实现跨平台内容资产的统一索引与语义关联。其中&#xff0c;Bakl…

【连载21】基础智能体的进展与挑战综述-交互风险

20. 智能体外部安全性&#xff1a;交互风险 随着人工智能智能体的发展以及与日益复杂的环境互动&#xff0c;与这些互动相关的安全风险已成为一个关键问题。本章聚焦于人工智能智能体与记忆系统、物理和数字环境及其他智能体的互动。这些互动使人工智能智能体面临各种脆弱性&a…

【Day41】

DAY 41 简单CNN 知识回顾 数据增强卷积神经网络定义的写法batch归一化&#xff1a;调整一个批次的分布&#xff0c;常用与图像数据特征图&#xff1a;只有卷积操作输出的才叫特征图调度器&#xff1a;直接修改基础学习率 卷积操作常见流程如下&#xff1a; 1. 输入 → 卷积层 →…

C++:参数传递方法(Parameter Passing Methods)

目录 1. 值传递&#xff08;Pass by Value&#xff09; 2. 地址传递&#xff08;Pass by Address&#xff09; 3. 引用传递&#xff08;Pass by Reference&#xff09; 数组作为函数参数&#xff08;Array as Parameter&#xff09; 数组作为函数返回值 什么是函数&#xff…

【iOS】方法交换

方法交换 method-swizzling是什么相关API方法交换的风险method-swizzling使用过程中的一次性问题在当前类中进行方法交换类方法的方法交换 方法交换的应用 method-swizzling是什么 method-swizzling的含义是方法交换&#xff0c;他的主要作用是在运行的时候将一个方法的实现替…

GoogLeNet网络模型

GoogLeNet网络模型 诞生背景 在2014年的ImageNet图像识别挑战赛中&#xff0c;一个GoogLeNet的网络架构大放异彩&#xff0c;与VGG不同的是&#xff0c;VGG用的是3*3的卷积&#xff0c;而GoogLeNet从1*1到7*7的卷积核都用&#xff0c;也就是使用不同大小的卷积核组合。 网络…

Linux:动静态库

一&#xff1a;什么是库 库是写好的&#xff0c;现有的&#xff0c;成熟的可以复用的代码。现实中每个程序都要依赖很多基础的底层库&#xff0c;不可能每个人都从零开始写&#xff0c;因此库的存在一样非同寻常 本质上库是一种可执行代码的二进制形式&#xff0c;可以被操作…

【图像处理入门】2. Python中OpenCV与Matplotlib的图像操作指南

一、环境准备 import cv2 import numpy as np import matplotlib.pyplot as plt# 配置中文字体显示&#xff08;可选&#xff09; plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False二、图像的基本操作 1. 图像读取、显示与保存 使用OpenCV…

设计模式——装饰器设计模式(结构型)

摘要 文中主要介绍了装饰器设计模式&#xff0c;它是一种结构型设计模式&#xff0c;可在不改变原有类代码的情况下&#xff0c;动态为对象添加额外功能。文中详细阐述了装饰器模式的角色、结构、实现方式、适合场景以及实战示例等内容&#xff0c;还探讨了其与其他设计模式的…

生活小记啊

最近生活上的事情还是蛮多的&#xff0c;想到哪写到哪。 工作 三月的某个周六&#xff0c;正在加班写技术方案&#xff0c;大晚上写完了听到调动通知&#xff0c;要去新的团队了。 还是蛮不舍的&#xff0c;看着产品从无到有&#xff0c;一路走过来&#xff0c;倾注了不少感…

【android bluetooth 案例分析 04】【Carplay 详解 2】【Carplay 连接之手机主动连车机】

1. 背景 在【android bluetooth 案例分析 04】【Carplay 详解 1】【CarPlay 在车机侧的蓝牙通信原理与角色划分详解】中我们从整理上介绍了车机中 carplay 相关基础概念。 本节 将详细分析 iphone手机主动 连接 车机carplay 这一过程。 先回顾一下 上一节&#xff0c; carpla…

【Kotlin】数字字符串数组集合

【Kotlin】简介&变量&类&接口 【Kotlin】数字&字符串&数组&集合 文章目录 Kotlin_数字&字符串&数组&集合数字字面常量显式转换数值类型转换背后发生了什么 运算字符串字符串模板字符串判等修饰符数组集合通过序列提高效率惰性求值序列的操…

FreeCAD源码分析: 串行化工具

本文分析FreeCAD中的串行化工具。 注1&#xff1a;限于研究水平&#xff0c;分析难免不当&#xff0c;欢迎批评指正。 注2&#xff1a;文章内容会不定期更新。 零、预修 0.1 QDataStream 0.2 Boost.Iostreams 0.3 Zipios 0.4 Xerces-C 一、核心组件 1.1 Base::Writer 1.2 Ba…

【R语言编程绘图-plotly】

安装与加载 在R中使用plotly库前需要安装并加载。安装可以通过CRAN进行&#xff0c;使用install.packages()函数。加载库使用library()函数。 install.packages("plotly") library(plotly)测试库文件安装情况 # 安装并加载必要的包 if (!requireNamespace("p…

设计模式——系统数据建模设计

摘要 本文主要介绍了UML在软件系统分析和设计中的应用&#xff0c;详细阐述了六大类关系&#xff08;泛化、实现、依赖、关联、聚合、组合&#xff09;及其在UML类图中的表示方法&#xff0c;并通过具体例子说明了这些关系在实际编程中的应用。同时&#xff0c;文章还概述了UM…

37. Sudoku Solver

题目描述 37. Sudoku Solver 回溯 class Solution {vector<vector<bool>> row_used;vector<vector<bool>> col_used;vector<vector<bool>> box_used;public:void solveSudoku(vector<vector<char>>& board) {row_used.r…

【Java开发日记】基于 Spring Cloud 的微服务架构分析

目录 1、Spring Cloud 2、Spring Cloud 的核心组件 1. Eureka&#xff08;注册中心&#xff09; 2. Zuul&#xff08;服务网关&#xff09; 3. Ribbon&#xff08;负载均衡&#xff09; 4. Hystrix&#xff08;熔断保护器&#xff09; 5. Feign&#xff08;REST转换器&a…