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

Maven 基础环境搭建与配置(一)

一、Maven 初印象

在 Java 开发的广袤天地里,Maven 就像是一位神通广大的 “大管家”,为开发者们排忧解难,让项目管理与构建变得轻松高效。它是一个强大的项目管理和构建自动化工具,基于项目对象模型(POM)的概念,通过简单的配置文件(pom.xml)就能对项目的依赖管理、构建过程、测试以及部署等环节进行全方位的掌控。

想象一下,在一个大型 Java 项目中,可能会涉及到成百上千个依赖库,手动管理这些依赖不仅繁琐,还容易出现版本冲突等问题。而 Maven 的依赖管理功能就如同一个智能的 “快递员”,只需要在 pom.xml 文件中声明所需的依赖,它就能自动下载并管理这些依赖,确保项目在不同环境下都能稳定运行。同时,Maven 还统一了项目的目录结构,使得不同的 Java 项目具有一致的布局,方便团队成员之间的协作与维护。例如,它规定源代码应放在 src/main/java 目录下,测试代码放在 src/test/java 目录下,这种标准化的结构让开发者能够快速熟悉和上手新的项目。

不仅如此,Maven 还提供了丰富的插件生态系统,通过这些插件,可以轻松实现代码编译、测试运行、项目打包、生成文档等各种功能,极大地提高了开发效率。在接下来的内容中,我们就一起揭开 Maven 的神秘面纱,学习如何搭建和配置 Maven 的基础环境,让它成为我们 Java 开发道路上的得力助手。

二、下载 Maven,开启旅程

在对 Maven 有了初步的认识后,接下来就进入到实际的操作环节 —— 下载 Maven。Maven 的官方下载地址为:https://maven.apache.org/download.cgi 。在这个页面中,你会看到 Maven 提供了多种版本的下载选项,以及针对不同操作系统的安装包格式。

(一)Windows 系统下载

对于 Windows 系统的用户,推荐下载 Binary zip archive 格式的文件,也就是以.zip 为后缀的二进制压缩包。这种格式的文件下载后,直接解压即可使用,非常方便。在下载时,你可以根据自己的需求选择合适的版本,一般来说,最新的稳定版本能够提供更好的功能和稳定性,建议优先选择。

当你点击下载链接后,选择一个合适的磁盘路径保存文件,等待下载完成。下载完成后,找到下载的压缩包,右键点击,选择 “解压到当前文件夹” 或者使用你常用的解压工具,将其解压到一个你希望安装 Maven 的目录,比如 “D:\Maven\apache - maven - 3.8.6”(这里假设下载的版本是 3.8.6 ,实际版本号请根据你下载的情况进行替换) 。需要注意的是,解压路径尽量不要包含中文和空格,以免在后续的配置和使用过程中出现问题。

(二)Linux 系统下载

Linux 系统下,有两种常见的下载方式。第一种是使用 wget 命令直接在终端中下载,例如:

 

wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz

这里同样要注意将版本号替换为你实际需要下载的版本。如果由于网络等原因,wget 命令无法正常下载,你也可以先在浏览器中访问 Maven 官网下载页面,手动下载文件,然后通过 FTP 工具或者其他文件传输方式,将下载好的文件上传到 Linux 服务器中。

下载的文件格式通常是 Binary tar.gz archive,即.tar.gz 后缀的压缩包。下载完成后,使用以下命令解压:

 

tar -zxvf apache-maven-3.8.6-bin.tar.gz

解压后,你可以将解压后的目录移动到你希望安装的位置,比如 “/usr/local/maven” 。同样,路径的选择要根据你的实际需求和系统环境来决定,确保路径的合法性和可访问性。

三、环境变量配置,关键一步

成功下载并解压 Maven 后,接下来就需要进行环境变量的配置。配置环境变量的目的是让系统能够在任何路径下都能找到并执行 Maven 的相关命令,就如同给系统指明 Maven 的 “藏身之处”,方便随时调用。下面我们分别来看在 Windows 和 Linux 系统中如何进行配置。

(一)Windows 系统环境变量配置

  1. 新建 MAVEN_HOME 变量:在桌面上找到 “此电脑” 图标,右键点击选择 “属性”,在弹出的窗口中点击 “高级系统设置” 。在弹出的 “系统属性” 窗口中,点击 “环境变量” 按钮。在 “系统变量” 区域中,点击 “新建” 按钮,创建一个新的系统变量。变量名填写为 “MAVEN_HOME”,变量值填写为你之前解压 Maven 的目录,例如 “D:\Maven\apache - maven - 3.8.6” 。填写完成后,点击 “确定” 保存。
  1. 在 Path 变量中添加 Maven 的 bin 目录:在 “系统变量” 中找到 “Path” 变量,点击 “编辑” 按钮。在弹出的 “编辑环境变量” 窗口中,点击 “新建”,然后输入 “% MAVEN_HOME%\bin” 。这一步的作用是让系统在执行命令时,能够找到 Maven 的可执行文件。添加完成后,点击 “确定” 保存,然后依次点击 “确定” 关闭所有窗口,完成环境变量的配置。

(二)Linux 系统环境变量配置

  1. 编辑配置文件:打开终端,使用 vim 编辑器编辑系统的环境变量配置文件,一般可以编辑 “/etc/profile” 文件。在终端中输入以下命令:
 

sudo vim /etc/profile

按下 “i” 键进入编辑模式。

2. 添加 Maven 环境变量:在文件的末尾添加以下两行内容,其中 “/usr/local/maven/apache - maven - 3.8.6” 需要替换为你实际解压 Maven 的路径:

 

export MAVEN_HOME=/usr/local/maven/apache-maven-3.8.6

export PATH=${MAVEN_HOME}/bin:$PATH

第一行定义了 MAVEN_HOME 变量,指向 Maven 的安装目录;第二行将 Maven 的 bin 目录添加到系统的 PATH 变量中,这样系统就可以在任何位置执行 Maven 命令。

3. 使配置生效:添加完成后,按下 “Esc” 键退出编辑模式,然后输入 “:wq” 并回车,保存并退出文件。接着,在终端中执行以下命令,使刚刚修改的环境变量配置立即生效:

 

source /etc/profile

(三)验证配置是否成功

无论是 Windows 还是 Linux 系统,配置完成后,都可以通过在命令行中输入以下命令来验证 Maven 环境变量是否配置成功:

 

mvn -v

如果配置成功,会输出 Maven 的版本信息、Maven home 路径、Java 版本等相关信息,类似如下内容:

 

Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)

Maven home: D:\Maven\apache-maven-3.8.6

Java version: 11.0.13, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-11.0.13\jre

Default locale: zh_CN, platform encoding: GBK

OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

如果出现 “'mvn' 不是内部或外部命令,也不是可运行的程序或批处理文件” 这样的错误提示,则说明环境变量配置可能存在问题,需要仔细检查配置步骤,确保路径的准确性和完整性。

相关文章:

Maven 基础环境搭建与配置(一)

一、Maven 初印象 在 Java 开发的广袤天地里,Maven 就像是一位神通广大的 “大管家”,为开发者们排忧解难,让项目管理与构建变得轻松高效。它是一个强大的项目管理和构建自动化工具,基于项目对象模型(POM)…...

[算法--前缀和] 一维前缀和

目录 1. 前缀和: 是一种对暴力求解的优化.2. 前缀和? 如何利用前面的计算结果提高效率?3. 如何预处理前缀和数组(如何让处理前缀和数组的复杂度是O(N))?接下来, 我们开启一个新的专题 -> 前缀和, 第一道是模板题, 一维前缀和 1. 前缀和: 是一种对暴力求解的优化. 前缀和…...

大模型基础概念之神经网络宽度

在大模型中,神经网络宽度是提升模型容量的核心手段之一,与深度、数据规模共同构成性能的三大支柱。合理增加宽度可显著增强模型表达能力,但需结合正则化、硬件优化和结构设计进行平衡。未来趋势可能包括动态宽度调整、稀疏化宽度设计(如MoE)以及更高效宽度-深度复合缩放策…...

LeetCode 每日一题 2025/2/17-2025/2/23

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 2/17 1287. 有序数组中出现次数超过25%的元素2/18 2080. 区间内查询数字的频率2/19 624. 数组列表中的最大距离2/20 2595. 奇偶位数2/21 2209. 用地毯覆盖后的最少白色砖块…...

《零基础学会!如何用 sql+Python 绘制柱状图和折线图,数据可视化一看就懂》

在数据驱动的时代,MySQL 是最常用的关系型数据库管理系统之一,广泛应用于各类数据存储和处理场景。数据分析的过程不仅仅是收集数据,还包括数据的清洗、转换、查询以及最终的报告和可视化。在本文中,我们将通过实际案例来介绍如何…...

【算法系列】归并排序详解

文章目录 归并排序详解1. 基本原理1.1 分治法策略1.2 归并排序步骤1.3 图解示例 2. 时间复杂度与空间复杂度2.1 时间复杂度2.2 空间复杂度 3. 稳定性4. Java 实现示例5. 归并排序的优点与缺点5.1 优点5.2 缺点 6. 总结 归并排序详解 归并排序(Merge Sort&#xff0…...

Vue的项目创建以及项目目录与组合式API

一.创建Vue 1.Vue-CLI:创建Vue的脚手架工具 2.Create-vue:是Vue官方提供的脚手架之一,底层采用官方自主研发的vite,快捷,开发方便。 3.准备工作:系统中需要安装nodejs环境,在该环境中提供npm包管理器 4.创建Vue项目的命令:npm init vuela…...

ubuntu-server 安装 navidia 显卡驱动

资料 https://juejin.cn/post/7362562720708280332 过程 ubuntu-drivers devices 选择ubuntu-server安装 rootroot:~# ubuntu-drivers devices udevadm hwdb is deprecated. Use systemd-hwdb instead. udevadm hwdb is deprecated. Use systemd-hwdb instead. udevadm hwd…...

【学习笔记】计算机网络(四)

第4章 网络层 文章目录 第4章 网络层4.1 网络层的几个重要概念4.1.1 网络层提供的两种服务虚电路服务(Virtual Circuit Service)数据报服务(Datagram Service) 4.1.2 网络层的两个层面 4.2 网际协议 IP - IPv44.2.1 虚拟互连网络4…...

DeepSeek-R1:通过强化学习激励大语言模型的推理能力

摘要 本文介绍了我们的第一代推理模型,DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是通过大规 模强化学习(RL)训练的模型,在没有使用监督微调(SFT)这个前置步骤的情况下,展示了卓越的推…...

Linux运维——网络管理

Linux网络管理 一、Linux网络应用要点二、命令常见用法2.1、curl2.1.1、发送GET请求2.1.2、发送POST请求2.1.3、设置请求头2.1.4、处理cookies2.1.5、处理重定向2.1.6、调试和详细信息2.1.7、使用代理2.1.8、文件上传2.1.9、其它常用选项2.1.10、综合示例 2.2、wget2.2.1、基本…...

洛谷 P8705:[蓝桥杯 2020 省 B1] 填空题之“试题 E :矩阵” ← 卡特兰数

【题目来源】 https://www.luogu.com.cn/problem/P8705 【题目描述】 把 1∼2020 放在 21010 的矩阵里。要求同一行中右边的比左边大,同一列中下边的比上边的大。一共有多少种方案? 答案很大,你只需要给出方案数除以 2020 的余数即可。 【答案提交】 …...

基于Flink SQL实现7天用户行为风险识别,结合滚动窗口预聚合与CEP复杂事件处理技术,根据用户7天的动作,包括交易,支付,评价等行为,识别用户的风险等级

一、数据建模与预聚合 1. 数据源定义 CREATE TABLE user_actions (user_id STRING,event_time TIMESTAMP(3),action_type STRING, -- 交易/支付/评价amount DOUBLE,status STRING, -- 交易状态(成功/失败)review_score INT, -- 评价分数&#x…...

【无标题】网络安全公钥密码体制

第一节 网络安全 概述 一、基本概念 网络安全通信所需要的基本属性“ 机密性;消息完整性;可访问性与可用性;身份认证。 二、网络安全威胁 窃听;插入;假冒;劫持;拒绝服务Dos和分布式拒绝服务…...

【含开题报告+文档+PPT+源码】基于SpringBoot的进销存管理系统的设计与实现

开题报告 本文提出并研发了一款基于Spring Boot框架构建的进销存管理系统,该系统集成了全方位的企业运营管理功能,涵盖了用户登录验证、系统公告管理、员工信息与权限管理、物料全流程(采购入库、销售出库、退货处理)控制、部门组…...

Linux-SaltStack配置

文章目录 SaltStack配置 🏡作者主页:点击! 🤖Linux专栏:点击! ⏰️创作时间:2025年02月24日20点51分 SaltStack配置 SaltStack 中既支持SSH协议也支持我们的一个客户端 #获取公钥(…...

DeepSeek-OpenSourceWeek-第二天-DeepEP

DeepSeek正在进行“开源周”活动,在第二天推出了DeepEP,这是一个面向混合专家(MoE)模型训练和推理的开源通信库。DeepSeek此前的成果已令人印象深刻,此次开源关键组件,体现了其对透明度、社区合作以及推动AI进步的决心,通过5个代码库(已发布2个)来展示这一承诺。 第一…...

事务的4个特性和4个隔离级别

事务的4个特性和4个隔离级别 1. 什么是事务2. 事务的ACID特性2.1 原子性2.2 一致性2.3 持久性2.4 隔离性 3. 事务的创建4. 事务并发时出现的问题4.1 DIRTY READ 脏读4.2 NON - REPEATABLR READ 不可重复读4.3 PHANTOM READ 幻读 5. 事务的隔离级别5.1 READ UNCOMMITTED 读未提交…...

对计算机中缓存的理解和使用Redis作为缓存

使用Redis作为缓存缓存例子缓存的引入 Redis缓存的实现 使用Redis作为缓存 缓存 ​什么是缓存,第一次接触这个东西是在考研学习408的时候,计算机组成原理里面学习到Cache缓存,用于降低由于内存和CPU的速度的差异带来的延迟。它是在CPU和内存…...

vue3 下载文件 responseType-blob 或者 a标签

在 Vue 3 中,你可以使用 axios 或 fetch 来下载文件,并将 responseType 设置为 blob 以处理二进制数据。以下是一个使用 axios 的示例: 使用 axios 下载文件 首先,确保你已经安装了 axios: npm install axios然后在你…...

SOME/IP-SD -- 协议英文原文讲解5

前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 5.1.2.5 S…...

lowagie(itext)老版本手绘PDF,包含页码、水印、图片、复选框、复杂行列合并等。

入口类:exportPdf ​ package xcsy.qms.webapi.service;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.StringUtils; import com.ibm.icu.text.RuleBasedNumberFormat; import com.lowa…...

MySQL undo log,redo log和bin log日志文件的生成时间点、层级归属、存储位置及生命周期详解

问题: 假如库名叫做A库,表名叫B表,undo log,redo log和bin log,这些日志文件的生成的时间点是什么?是在mysql的哪一层生成的?哪些文件是有buffer的?哪些日志文件是存在磁盘上的?哪些…...

吃一堑长一智

工作中经历,有感触记录下 故事一 以前在一家公司时,自己是一名开发人员,遇到问题请教领导解决方案,当时领导给了建议,后来上线后出问题了,背了锅。心里想的是领导说这样做的呀,为什么出问题还…...

DeepSeek基础之机器学习

文章目录 一、核心概念总结(一)机器学习基本定义(二)基本术语(三)假设空间(四)归纳偏好(五)“没有免费的午餐”定理(NFL 定理) 二、重…...

达梦有没有类似oerr的功能

在oracle 23ai的sqlplus中&#xff0c;直接看异常信息说明&#xff1a; 达梦没有此功能&#xff0c;但是可以造一个 cd /home/dmdba cat >err.sql<<eof set echo off set ver off set timing off set lineshow off set feedback off select * from V\$ERR_INFO wher…...

实战-网安

面试感受:网安公司前端实习 今天我有幸面试了一家网络安全公司的前端开发实习岗位,整个过程让我受益匪浅,也让我对未来的职业发展有了更清晰的认识。 首先,面试官非常专业且友好,整个面试氛围轻松但不失严谨。面试一开始,面试官简单介绍了公司背景和团队文化,让我对公…...

一文掌握Splash的详细使用

文章目录 1. 安装与启动 Splash1.1 使用 Docker 安装1.2 直接安装 2. 基本用法2.1 访问 Splash 界面2.2 使用 Splash 渲染页面2.3 使用 Lua 脚本 3. 高级用法3.1 处理 JavaScript3.2 截图与 PDF3.3 处理 AJAX 请求3.4 设置请求头3.5 处理 Cookies 4. 与 Scrapy 集成4.1 安装 Sc…...

从 Linux 服务器到前端到网关到后端业务逻辑的分析

前言 在现代 Web 应用程序的架构中&#xff0c;一个完整的请求处理流程涉及多个组件&#xff0c;涵盖了用户界面、服务器环境、网关层和后端业务逻辑。理解这一过程有助于优化系统性能、提高用户体验&#xff0c;并确保系统的可维护性和可扩展性。本文将详细分析从 Linux 服务…...

Java中的Stream API:从入门到实战

引言 在现代Java开发中&#xff0c;Stream API 是处理集合数据的强大工具。它不仅让代码更加简洁易读&#xff0c;还能通过并行处理提升性能。本文将带你从基础概念入手&#xff0c;逐步深入Stream API的使用&#xff0c;并通过实战案例展示其强大功能。 1. 什么是Stream API…...