【Maven】(一)5分钟做完 Maven 的安装与配置

news2025/2/24 18:30:42

1.前言

在安装Maven之前,先简单的介绍一下。

Maven 是一款构建工具,它抽象项目构建的生命周期并提供了一个标准的、跨平台的构建流程,让我们在各类操作系统的环境中,都只需要使用一个简单的指令(如 mvn clean install)就可以自动完成构建任务。

此外,Maven 还是一个依赖管理工具和项目管理工具,它提供了一个中央仓库,使各个开源组织可以将自己的jar包,类库等上传到仓库中,其他的开发者只需要在 Maven 的 POM 文件中配置好依赖的坐标,在编译、构建等开发的生命周期节点上,就可以自动的下载对应的jar添加到项目的依赖中去,我们不需要在手动的从各类开源网站中去下载jar包,从而很大程度上避免了繁琐的依赖冲突处理。

接下来就先看一下在不同环境中的 Maven 安装。

2.安装与配置

安装 Maven 之前需要先完成 Java 的安装和环境变量配置,配置完 Java 之后,就可以去官网下载安装包了:《Maven下载地址》,打开后的界面如下图:

在这里插入图片描述

注意Java版本与Maven版本之间的对应关系,Maven 3.9 以上的版本需要 JDK8 的支持,我们可以看到 Maven 最新的稳定版本是3.9.0,上面的 bin.zip 对应的是 Windows 安装包,tar.gz 对应的是 Unix 系统的安装包(如:CentOs)。

如果想下载历史版本的 Maven,可以查看历史版本列表:《Maven3历史版本》,这里选择下载 3.5.4在这里插入图片描述

2.1.Windows上安装

将下载的zip文件解压,文件路径中不能带有中文,为了在任意文件位置都可以运行mvn指令,需要将 Maven 的路径配置到环境变量中。


在这里插入图片描述
使用 win + r 打开运行框,输入control system,回车进入设置界面后,按下面的步骤创建一个环境变量MAVEN_HOME

在这里插入图片描述
创建好后,找到系统变量中的path,将MAVEN_HOME这个变量配置进去:

在这里插入图片描述

然后依次点击确定,退出配置窗口,打开cmd命令行输入mvn -v,打印出版本号表示安装成功。
在这里插入图片描述


安装完成之后,需要修改本地仓库的地址以及Maven中央仓库镜像地址,这两者即使不修改也是可以正常使用的,但是如果不修改本地仓库地址的话,在后续使用的使用会将三方的 jar 包下载到 c盘的 .m2 目录下。同样的,如果不配置国内的仓库镜像的话,下载速度就会非常慢。


修改本地仓库地址

我们在 Maven 的根目录下找到 conf 文件夹,打开里面的setting.xml文件,找到<localRepository>标签:
在这里插入图片描述
红框中是默认的仓库地址就是默认的仓库地址,可以参照下面那行将本地仓库配置到的 E 盘里面:

  <localRepository>E:/workspace/repository</localRepository>

修改镜像地址

在这里插入图片描述

继续在当前文件中往下找到<mirrors>标签,将这里面的地址修改为国内的镜像,例如修改为腾讯云:

<mirror>
    <id>nexus-tencentyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus tencentyun</name>
    <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</mirror>

配置完成之后,就可以开始使用啦,如果是在公司的话,一般还会配置一下私服地址,这个在后续的文章中会提到。

2.2.CentOS上安装

不清楚如何在CentOS上配置Java环境变量的同学,可以参考:《CentOS配置Java环境变量》

同样的,使用XFTP等工具,将 Maven 的 tar 包拷贝到 CentOS服务器中并解压:

tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/maven

然后配置环境变量,打开环境变量文件:

vim /etc/profile

添加配置:

export MAVEN_HOME=/usr/maven/apache-maven-3.5.4
export PATH=${JAVA_HOME}/bin:${MAVEN_HOME}/bin:$PATH

输入下面指令使环境变量生效,并查看Maven版本

source /etc/profile
mvn -v

在这里插入图片描述


接下来是修改镜像配置,CentOS中没有C盘的限制,所有不用修改本地仓库路径,同样的进入到Maven根目录中,打开conf/setting.xml

vim conf/setting.xml

在这里插入图片描述

3.IDEA配置

IDEA中是自带Maven的,但是自带的版本一般比较新容易出现一些不太稳定的问题,再者,除了在IDEA中使用以外,还有可能会在命令行中使用,我们在不同的地方使用的 Maven 的功能最好能够保持 Maven版本的一致,所以需要修改IDEA中关于Maven的配置。


进入Idea后,使用ctrl + alt + s进入配置,按照下面的流程操作:
在这里插入图片描述
这里的Maven home directory 会出现一个文件路径,这个文件路径就是我们之前配置在环境变量中的路径,然后下面的user settings fileLocal repository就会自动填充好了。

但是这么配置的Maven只会对当前打开的项目有效,如果新建一个项目或者打开一个还没有修改Maven配置的项目,又得重新配置,所以我们还需要修改一下Idea的默认配置。
在这里插入图片描述
然后按照同样的方式进行配置即可:
在这里插入图片描述

4.结语

至此,Maven的安装配置就结束了,是不是非常的简单,所谓“工欲善其事必先利其器”,有了今天的基础之后,后面就可以正式的开始 Maven 的使用啦!
下一篇将会讲述如何使用 Maven 来创建、维护、打包、运行一个项目,并简单介绍 POM 的组成。


如果觉得本文有帮助的话,可以帮忙点点赞哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/362037.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全态势感知研究综述

摘要&#xff1a;随着物联网、云计算和数字化的迅速发展&#xff0c;传统网络安全防护技术无法应对复杂的网络威胁。网络安全态势感知能够全面的对网络中各种活动进行辨识、理解和预测。首先分别对态势感知和网络安全态势感知的定义进行了归纳整理&#xff0c;介绍了网络安全态…

使用带有 Moveit 的深度相机来避免碰撞

文章目录 什么是深度相机?如何将 Kinect 深度相机添加到您的环境中在 Rviz 中可视化深度相机数据在取放场景中使用深度相机将深度相机与您的 Moveit 设置一起使用有很多优势。机器人可以避免未知环境中的碰撞,甚至可以对周围的变化做出反应。然而,将深度相机连接到您的设置并…

vue2组件

文章目录注册组件组件的理解为什么使用组件组件化组件化思想的应用复用组件注册组件创建组件构造器注册组件使用组件全局组件和局部组件全局组件局部组件组件的嵌套注册组件的语法糖组件命名组件名关于组件标签组件模板的分离写法组件的data必须是一个函数关于VueComponent组件…

华为电脑录屏,3个方法,轻松录屏

华为电脑录屏是一项非常实用的功能&#xff0c;可以帮助小伙伴轻松的记录和分享屏幕上的操作内容。华为电脑提供了内置的录屏工具&#xff0c;可以进行全屏录制&#xff0c;小伙伴也可以选择使用电脑QQ录屏功能和数据蛙录屏软件进行华为电脑录屏。让我们一起来了解一下华为电脑…

一文掌握人才盘点工具方法及步骤【附实用模板】

很多人认为人才盘点是HR的事情&#xff0c;作为项目经理和PMO基本上没有操心过&#xff1f;但是真正用人的人是你&#xff0c;为公司拿结果的人也是你&#xff0c;但是你从来没有盘点过有多少人&#xff0c;什么样的人可用&#xff1f;这些人的能力如何&#xff1f;潜力如何&am…

Windows启动docker客户端报错:Hardware assisted virtualization and enabled in the BIOS

报错内容 : &#x1f31f;1.在控制面板中点击 启用或关闭Windows功能&#x1f31f;2.勾选如下复选框&#x1f31f;3.Windows功能中没有Hyper-V复选框怎么办?(如果有请跳过此步骤)此时不同人的电脑还会出现没有Hyper-V选项的情况1.打开 Windows PowerShell&#xff0c;输入 sys…

pytest进阶之html测试报告

pytest进阶之html测试报告 目录&#xff1a;导读 前言 pytest-html生成报告 安装 生成报告 效果 错误用例截图 添加描述 小结 allure2生成报告 安装allure 安装pytest-allure-adaptor插件 生成xml格式报告 添加环境变量 运行allure生成报告 效果 总结 前言 …

【UnityAR相关】Unity Vuforia扫图片成模型具体步骤

1 资产准备 导入要生成的fbx模型&#xff08;带有材质&#xff09;&#xff0c; 你会发现导入fbx的材质丢失了&#xff1a; 选择Standard再Extract Materials导出材质到指定文件夹下&#xff08;我放在Assets->Materials了 ok啦&#xff01; 材质出现了&#xff0c; 模型…

linux查看WWN号及常见问题解决

linux查看WWN号及常见问题解决查看WWN号查看WWID号查询常见问题查看WWN号 要查看CentOS 6.7版本的WWN号&#xff0c;可以执行以下步骤&#xff1a; 1.确保已经连接了存储设备。 lspci | grep -i fibre2.在终端中输入命令&#xff1a;lsscsi&#xff0c;然后按 Enter 键。该命令…

Nacos快速使用指南

简单例子&#xff1a;springboot快速集成nacos官方github文档命名空间是绝对隔离的。group之间可以通过配置实现跨 group访问配置中心Nacos config官方文档应用级别的默认配置文件名&#xff08;dataId&#xff09;dataId 的完整格式如下&#xff1a;${prefix}-${spring.profil…

【C++】thread|mutex|atomic|condition_variable

本篇博客&#xff0c;让我们来认识一下C中的线程操作 所用编译器&#xff1a;vs2019 阅读本文前&#xff0c;建议先了解线程的概念 &#x1f449; 线程概念 1.基本介绍 在不同的操作系统&#xff0c;windows、linux、mac上&#xff0c;都会对多线程操作提供自己的系统调用接口…

Linux Crontab命令定时任务基本语法与操作教程

Linux Crontab命令定时任务基本语法与操作教程 一、Crontab查看编辑重启 1、查看crontab定时执行任务列表 crontab -l 2、编辑crontab定时执行任务 crontab -e 3、删除crontab定时任务 crontab -r 4、相关命令&#xff1a; sudo service crond start #启动服务 sudo …

图论详解——Bellman-Ford(清晰易懂)

开学第一周&#xff0c;晚上属实作业有点乱于是就拖更了一周今天我们来讲解一下图论最短路径算法中最简单最清晰易懂同时时间复杂度最高的算法它的时间复杂度能达到O(VE)&#xff08;点的数量*边的数量&#xff09;在学习Bellman-Ford之前&#xff0c;你需要先学会链式前向星大…

固态继电器与普通继电器的区别

固态继电器 固态继电器是一种全电子电路组合元件&#xff0c;它依靠半导体器件和电子元件的电磁和光学特性来完成其隔离和继电器开关功能。与传统的电磁继电器相比&#xff0c;固态继电器是一种没有机械和运动部件的继电器&#xff0c;但具有与电磁继电器基本相同的功能。 固…

经典布局 (flex和传统两种实现) 左右两栏式

1.混合浮动普通流 混合浮动普通流 父级&#xff1a;宽度固定 left:宽度固定。浮动起来 right:宽度和父级一样&#xff0c;设定margin-right:left的宽度px,宽度随父级变化而变化&#xff08;固定自适应&#xff09; <!DOCTYPE html> <html lang"en"> <…

超店有数,为什么商家要使用tiktok达人进行营销推广呢?

近几年互联网发展萌生出更多的短视频平台&#xff0c;而tittok这个平台在海外也越来越火爆。与此同时&#xff0c;很多商家也开始用tiktok进行营销推广。商家使用较多的方式就是达人营销&#xff0c;这种方法很常见且转化效果不错。那为什么现在这么多商家喜欢用tiktok达人进行…

Jmeter参数提取器-如何使用 json提取器及设置全局变量来调用

在jmeter接口测试的过程中&#xff0c;经常会遇到了需要关联参数的情况&#xff0c;在接口响应后&#xff0c;提取请求返回结果中的某个值或者某一组值&#xff0c;作为下一个接口的入参&#xff0c;例如token或者其他变量&#xff0c;需要设置成全局变量或者局部变量来给下个接…

边界检测方法总结

1&#xff1a;经典的边界检测方法有sobel&#xff0c;拉普拉斯&#xff0c;canny等。 sobel&#xff1a; def get_sobel(in_chan, out_chan):filter_x np.array([[1, 0, -1],[2, 0, -2],[1, 0, -1],]).astype(np.float32)filter_y np.array([[1, 2, 1],[0, 0, 0],[-1, -2, -…

如何使用 ChatGPT 编写 SQL JOIN 查询

通过清晰的示例和解释&#xff0c;本文展示了 ChatGPT 如何简化和简化创建复杂 MySQL 查询的过程&#xff0c;使用户更容易与数据库交互并检索他们需要的数据。无论您是初学者还是经验丰富的开发人员&#xff0c;本文都提供了有关如何利用 ChatGPT 来增强您的 MySQL 查询编写技…

51内核单片机实现Bootloader跳转到用户程序,要求两个程序都要支持中断

Flash空间规划 本文使用的单片机为笙科的A9129F6&#xff0c;Flash大小为64KB&#xff0c;其空间规划如下。 起始地址结束地址用途0x00000x3fff Bootloader程序 0x40000xefff 用户程序&#xff08;APP程序&#xff09; 0xf000 0xffff 存放设备配置信息 程序间跳转实现起来很…