Maven 安装与配置指南(适用于 Windows、Linux 和 macOS)
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 字符。
示例路径:
- Windows:
C:\Program Files\apache-maven-3.9.9
- Linux/macOS:
/usr/local/apache-maven-3.9.9
2. 配置环境变量
Windows 系统
-
设置系统环境变量
MAVEN_HOME
,值为 Maven 的安装路径,例如:C:\Program Files\apache-maven-3.9.9
-
编辑系统环境变量
Path
,添加:%MAVEN_HOME%\bin
Linux/macOS 系统
-
打开终端,编辑用户主目录下的 shell 配置文件:
- Bash:
~/.bashrc
- Zsh:
~/.zshrc
- Bash:
-
在文件末尾添加以下内容:(阿里云)
export MAVEN_HOME=/usr/local/apache-maven-3.9.9 export PATH=$MAVEN_HOME/bin:$PATH
-
保存文件并使配置生效:
source ~/.bashrc # 或 source ~/.zshrc
四、验证 Maven 安装
在终端或命令提示符中执行以下命令:
mvn -version
若系统返回 Maven 的版本信息,表示安装成功。
五、配置国内镜像源(可选)
为提高依赖包下载速度,可配置国内镜像源。
-
打开 Maven 安装目录下的
conf/settings.xml
文件。 -
在
<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(可选)
-
打开 IntelliJ IDEA,进入:
File > Settings > Build, Execution, Deployment > Build Tools > Maven
-
在 Maven home directory 中,选择 Maven 的安装路径。
-
在 User settings file 中,选择配置了镜像源的
settings.xml
文件。 -
点击 Apply 和 OK 保存配置。
配置完成后,IntelliJ IDEA 将使用指定的 Maven 设置进行项目构建和依赖管理。
通过以上步骤,Maven 已在系统中成功安装并配置完毕。 可开始使用 Maven 管理和构建 Java 项目。
更多 Maven 使用方法和最佳实践,参考官方文档:
https://maven.apache.org/guides/index.html
相关文章:

Maven 安装与配置指南(适用于 Windows、Linux 和 macOS)
Apache Maven 是一款广泛应用于 Java 项目的项目管理和构建工具。 本文提供在 Windows、Linux 和 macOS 系统上安装与配置 Maven 的详细步骤,旨在帮助开发者快速搭建高效的构建环境。 一、前置条件:安装 Java Development Kit (JDK) Maven 依赖于 Java …...

android 媒体框架之MediaCodec
一、MediaCodec 整体架构与设计思想 MediaCodec 是 Android 底层多媒体框架的核心组件,负责高效处理音视频编解码任务。其架构采用 生产者-消费者模型,通过双缓冲区队列(输入/输出)实现异步数据处理: 输入缓冲区队列…...

堆与堆排序及 Top-K 问题解析:从原理到实践
一、堆的本质与核心特性 堆是一种基于完全二叉树的数据结构,其核心特性为父节点与子节点的数值关系,分为大堆和小堆两类: 大堆:每个父节点的值均大于或等于其子节点的值,堆顶元素为最大值。如: 小堆:每个…...
Linux中检查当前用户是不是root
Linux中检查当前用户是不是root 检查当前用户是否为root用户。如果是root用户,输出“当前用户是root”;否则,输出“当前用户不是root”。 创建一个 aaa.sh脚本文件 写入如下内容 #!/bin/bash# 检查当前用户的UID是否为0(root用…...

软件锁:守护隐私,安心无忧
数字化时代,手机已成为我们生活中不可或缺的一部分,它不仅存储着我们的个人信息、照片、聊天记录等重要数据,还承载着我们的社交、娱乐和工作等多种功能。然而,这也意味着手机上的隐私信息面临着诸多泄露风险。无论是家人、朋友还…...

无人机桥梁3D建模、巡检、检测的航线规划
无人机桥梁3D建模、巡检、检测的航线规划 无人机在3D建模、巡检和检测任务中的航线规划存在显著差异,主要体现在飞行高度、航线模式、精度要求和传感器配置等方面。以下是三者的详细对比分析: 1. 核心目标差异 任务类型主要目标典型应用场景3D建模 生成…...
项目:贪吃蛇实现
头文件 snake.h #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<locale.h> #include<stdbool.h> #include<time.h>#define POS_X 24#define POS_Y 5 #define BODY L● #define FOOD L★ #define KEY_PRESS(VK) ((…...

【Java基础05】面向对象01
文章目录 1. 设计对象并使用1.1 类与对象1.2 封装1.2.1 private关键字1.2.2 this关键字成员变量和局部变量的区别 1.2.3 构造方法1.2.4 标准JavaBean类 1.3 对象内存图 本文部分参考这篇博客 1. 设计对象并使用 1.1 类与对象 public class 类名{1、成员变量(代表属性,一般是名…...

设计模式:观察者模式 - 实战
一、观察者模式场景 1.1 什么是观察者模式? 观察者模式(Observer Pattern)观察者模式是一种行为型设计模式,用于定义一种一对多的依赖关系,当对象的状态发生变化时,所有依赖于它的对象都会自动收到通知并更…...
8.8 Primary ODSA service without ODSA Portal
主要ODSA服务(不使用ODSA门户) 以下场景描述如下情况: • 主ODSA客户端应用程序被允许用于该类型的主设备,且对终端用户启用(已授权)。 • 服务提供商(SP)能够在不涉及ODSA门户Web服…...

YOLOv8 移动端升级:借助 GhostNetv2 主干网络,实现高效特征提取
文章目录 引言GhostNetv2概述GhostNet回顾GhostNetv2创新 YOLOv8主干网络改进原YOLOv8主干分析GhostNetv2主干替换方案整体架构设计关键模块实现 完整主干网络实现YOLOv8集成与训练模型集成训练技巧 性能对比与分析计算复杂度对比优势分析 部署优化建议结论与展望 引言 目标检…...

国产化Word处理控件Spire.Doc教程:在 C# 中打印 Word 文档终极指南
在 C# 中以编程方式打印 Word 文档可以简化业务工作流程、自动化报告和增强文档管理系统。本指南全面探讨如何使用Spire.Doc for .NET打印 Word 文档,涵盖从基本打印到高级自定义技术的所有内容。我们将逐步介绍每种情况下的实际代码示例,确保您能够在实…...
java的vscode扩展插件
在 Visual Studio Code (VSCode) 中,Java 开发可以通过多种方式得到支持,包括安装专门的扩展插件。下面是一些流行的 VSCode 扩展插件,可以帮助你更好地进行 Java 开发: Language Support for Java(TM) by Red Hat 官方支持&…...

谷歌:贝叶斯框架优化LLM推理反思
📖标题:Beyond Markovian: Reflective Exploration via Bayes-Adaptive RL for LLM Reasoning 🌐来源:arXiv, 2505.20561 🌟摘要 通过强化学习 (RL) 训练的大型语言模型 (LLM) 表现出强大的推理能力和紧急反射行为&a…...

Qt SQL模块基础
Qt SQL模块基础 一、Qt SQL模块支持的数据库 官方帮助文档中的Qt支持的数据库驱动如下图: Qt SQL 模块中提供了一些常见的数据库驱动,包括网络型数据库,如Qracle、MS SQL Server、MySQL等,也包括简单的单机型数据库。 Qt SQL支…...

[9-3] 串口发送串口发送+接收 江协科技学习笔记(26个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26中断...
java 微服务中,微服务相互调用 feign 和flux 如何选择
在 Java 微服务中,Feign 和 Flux(通过 WebClient 实现)是两种不同的服务间调用方式,主要区别体现在编程模型、通信机制和适用场景上。 1. 编程模型 FeignFlux (WebClient)同步阻塞式:基于传统 Servlet 模型࿰…...

如何在Qt中绘制一个带有动画的弧形进度条?
如何在Qt中绘制一个弧形的进度条 在图形用户界面开发中,进度指示控件(Progress Widget)是非常常见且实用的组件。CCArcProgressWidget 是一个继承自 QWidget 的自定义控件,用于绘制圆弧形进度条。当然,笔者看了眼公开…...
参加技术会议,为程序人生的职业生涯成长添砖加瓦
参加技术会议,为程序人生的职业生涯成长添砖加瓦 关键词:技术会议、程序员职业生涯、职业成长、技术交流、人脉拓展、知识体系升级、职业竞争力 摘要:在快速迭代的IT技术领域,参加技术会议已成为程序员突破职业瓶颈、构建核心竞争力的重要途径。本文从技术会议的核心价值出…...

国产三维CAD皇冠CAD(CrownCAD)建模教程:汽车电池
在线解读『汽车电池』的三维建模流程,讲解3D草图、保存实体、拉伸凸台/基体、设置外观等操作技巧,一起和皇冠CAD(CrownCAD)学习制作步骤吧! 汽车电池(通常指铅酸蓄电池或锂离子电池)是车辆电气系…...
记录算法笔记(2025.5.28)只出现一次的数字
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 示例 1 : 输入࿱…...

VMware-workstation安装教程--超详细(附带安装包)附带安装CentOS系统教程
VMware-workstation安装教程--超详细(附带安装包)附带安装CentOS系统教程 一、下载软件VMwware二、下载需要的镜像三、在VMware上安装系统 一、下载软件VMwware 二、下载需要的镜像 三、在VMware上安装系统 VMware 被 Broadcom(博通&#x…...

2025年- H63-Lc171--33.搜索旋转排序数组(2次二分查找,需二刷)--Java版
1.题目描述 2.思路 输入:旋转后的数组 nums,和一个整数 target 输出:target 在 nums 中的下标,如果不存在,返回 -1 限制:时间复杂度为 O(log n),所以不能用遍历,必须使用 二分查找…...

3D-激光SLAM笔记
目录 定位方案 编译tbb ros2humble安装 命令 colcon commond not found 栅格地图生成: evo画轨迹曲线 安装gtsam4.0.2 安装ceres-solver1.14.0 定位方案 1 方案一:改动最多 fasterlio 建图,加闭环优化,参考fast-lio增加关…...
Golang 配置国内代理
使用 GOPROXY 临时设置 export GOPROXYhttps://goproxy.cn,direct永久设置 go env -w GOPROXYhttps://goproxy.cn,direct再go get下载...
Android bindservice绑定服务,并同步返回service对象的两个方法
先上一段代码: private IDeviceService deviceService null; private ServiceConnection connnull; private synchronized void bindyourservice() { Intent intent new Intent();intent.setPackage("servicepackagename");intent.setAction("…...
5G 核心网 UE 状态深度剖析:机制、迁移与演进
摘要 本文围绕 5G 核心网中 UE(用户设备)状态展开系统分析,详细阐述了 UE 状态的定义、分类及特点,深入探讨各状态间的迁移流程与关键技术,并结合典型应用场景分析其实际价值。同时,对比 4G 技术剖析 5G 的改进之处,展望 6G 时代 UE 状态管理的演进方向,为 5G 网络优化…...

HomeKit 基本理解
概括 HomeKit 将用户的家庭自动化信息存储在数据库中,该数据库由苹果的内置iOS家庭应用程序、支持HomeKit的应用程序和其他开发人员的应用程序共享。所有这些应用程序都使用HomeKit框架作为对等程序访问数据库. Home 只是相当于 HomeKit 的表现层,其他应用在实现 …...
[SC]SystemC在CPU/GPU验证中的应用(三)
SystemC在CPU/GPU验证中的应用(三) 摘要:下面分享50个逐步升级SystemC编程能力的示例及建议的学习路线图。您可以一次一批地完成它们——从前五个基础的例子开始,然后转向channels, TLM, bus models, simple CPU/GPU kernels等等。在每个阶段掌握之后,再进行下一组…...
gunicorn多线程部署django导致的登陆错误
使用django写后端,认证系统使用了内存中的令牌存储(authentication.py中的user_tokens字典)。 from secrets import token_hex from .models import User# Create a custom token generation function def generate_token():return token_he…...