(2024.6.23)最新版MAVEN的安装和配置教程(超详细)

news2024/10/6 20:41:22

1.什么是MAVEN

        Maven是一个自动化构建工具,主要用于Java项目,它由Apache软件基金会维护。Maven能够自动化完成编译测试打包发布等构建过程,可以大大提高开发效率,保证项目的质量。

                              

下面我们从几个方面来介绍一下MAVEN的功能特性

1.项目管理工具
        Maven不仅仅是一个构建工具,它还是一个项目管理工具。它通过
项目对象模型(Project Object Model,POM)来管理项目的构建、报告和文档。
2.依赖管理
        Maven的一个核心功能是
依赖管理。它允许开发者声明项目所依赖的库(如jar文件),Maven会自动下载这些依赖,并管理它们的版本。这样可以确保项目在不同的环境中有一致的依赖,减少了因依赖问题导致的错误。
3.构建生命周期
        Maven定义了项目的
构建生命周期,包括清理编译测试打包集成测试验证部署等阶段。每个阶段都由插件来执行特定的任务。
4.插件机制
        Maven本身不执行构建的具体操作,而是通过
插件来完成。插件是Maven的核心扩展点,用户可以通过添加或自定义插件来扩展Maven的功能。
5.多模块项目管理
        Maven支持多模块项目。这意味着一个大的项目可以被拆分成多个模块,每个模块都有自己的POM文件。Maven能够处理模块间的依赖关系,并协调它们的构建顺序。
6.标准和约定优于配置
        Maven鼓励使用标准和约定来减少配置的工作量。例如,它有一套标准的
项目目录结构,如果遵循这些标准和约定,很多配置就可以省略,简化了项目的搭建过程。
7.集成和扩展性
        Maven可以与其他工具和系统集成,如持续集成服务器(如Jenkins)、问题跟踪系统等。同时,它也支持自定义插件来满足特定的构建需求。
8.中央仓库
        Maven使用
中央仓库来存储依赖库。当Maven需要下载依赖时,它会首先从中央仓库查找。此外,Maven还支持设置镜像仓库和本地仓库,以优化下载速度和提高可靠性。

2.MAVEN的安装

1.下载MAVEN

(1)点击MAVEN官网,如图:

2.点击Download,下载适合自己的版本:

Windows用户选   apache-maven-3.9.8-bin.zip 这个就行了

3.解压刚刚下载的zip包:

2.配置环境变量

1.打开刚刚解压完的zip文件:

复制 apache-maven-3.9.8-bin的路径,我的是:

D:\apache-maven-3.9.8-bin\apache-maven-3.9.8

2.打开环境变量设置:“此电脑”鼠标右键→“属性”→高级系统设置

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

变量名填:

MAVEN_HOME

变量值是刚刚复制的路径(以你自己电脑的路径为准):

D:\apache-maven-3.9.8-bin\apache-maven-3.9.8

如图:

接着找到Path:

在②里填入:

%MAVEN_HOME%\bin

3.验证环境变量是否成功配置:

win+R运行cmd,输入mvn -version,如图所示则配置成功:

3.MAVEN的配置

1.配置本地仓库

本地仓库(Local Repository)在Maven中扮演着重要的角色,是Maven工作原理的一个关键部分
1. 缓存依赖:
   - 当第一次运行Maven命令来构建项目时,Maven会从远程仓库(如中央仓库)下载项目所依赖的库(jar文件)到本地仓库。这些依赖被缓存在本地仓库中,以便于未来的构建可以重用,不需要再次从远程仓库下载,节省时间。
2. 离线工作:
   - 如果没有网络连接或者远程仓库不可用,Maven可以从本地仓库获取依赖,可以在离线状态下构建项目。
3. 减少网络流量:
   - 由于依赖一旦下载就会存储在本地仓库中,因此在项目开发过程中,重复构建时不需要多次下载相同的依赖,减少网络流量和远程仓库的负载。
4. 自定义依赖管理:
   - 可以将自己的项目构件(如jar文件)安装到本地仓库中,这样其他项目就可以通过Maven依赖机制使用这些构件,方便了项目的共享和重用。
5. 版本控制:
   - 本地仓库会存储不同版本的依赖,可以轻松地在项目中切换依赖的版本,不用担心其他项目的干扰。
6. 提高构建速度:
   - 本地仓库通常位于本地硬盘上,访问速度远快于远程仓库,可以显著提高项目构建的速度。
8. 自定义仓库配置:
   - 可以配置多个本地仓库,例如,为不同的项目或不同的环境设置不同的本地仓库,以更好地管理依赖。

下面来详细介绍配置本地仓库的过程:

1.找到之前解压的MAVEN文件,新建一个 MAVEN—local repository 文件夹作为本地的仓库,如下图:

2.在 D:\apache-maven-3.9.8-bin\apache-maven-3.9.8 下找到conf文件夹,打开,找到settings.xml文件:

以记事本形式打开这个setting.xml文件,可以改成txt后缀再打开,改完记得改回xml后缀

3.找到 localRepository 节点,在注释外添加:

<localRepository>D:\apache-maven-3.9.8-bin\MAVEN—local repository</localRepository>

注意,<localRepository>这里填你自己刚刚新建的本地仓库文件路径</localRepository>

如图:

改完后再次确认:

2.配置阿里云服务器镜像

国外的服务器下载jar包很慢,所以我们需要将其改为国内的阿里云服务器

下面介绍修改步骤:

1.同样的,在之前这个 settings.xml  文件中找到 mirrors 节点


2.将下面的内容复制粘贴进去:

<!-- 阿里云仓库 -->
<mirror>
	<id>alimaven</id>
	<mirrorOf>central</mirrorOf>
	<name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

如图:

3.配置JDK

1.同样的,在之前这个 settings.xml  文件中找到 profiles 节点:

2.将下面的内容复制粘贴进去:

<!-- java版本 --> 
<profile>
	  <id>jdk-1.8</id>
	  <activation>
		<activeByDefault>true</activeByDefault>
		<jdk>1.8</jdk>
	  </activation>

	  <properties>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
	  </properties>
</profile>

如图:

保存退出

3.查看是否配置成功,win+R快捷键运行cmd,输入 mvn help:system 测试:

如果出现下载很多文件的页面,说明您配置成功啦!!!

如果您第一次执行 mvn help:system 命令,Maven相关工具会自动到Maven中央仓库下载缺失的或者Maven中央仓库更新的各种配置文件和类库(jar包)到Maven本地仓库中。
下载完各种文件后, mvn help:system 命令会打印出所有的Java系统属性和环境变量:

到这里,所有的配置就大功告成了!!!恭喜您

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

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

相关文章

《人生苦短,我用python·四》pybind11多场景使用

引言 Pybind11作为一个强大的工具&#xff0c;不仅可以轻松地将简单的C函数和类暴露给Python&#xff0c;还可以处理更复杂的场景&#xff0c;比如支持C标准库容器、处理C异常、以及自定义数据结构的转换。本文将深入介绍Pybind11的一些高级用法&#xff0c;帮助你在实际项目中…

为什么用excel求出的和是错误的?

Excel中求和结果错误的原因可能有几种常见的情况&#xff1a;1. **数据格式问题**&#xff1a;有时候数字可能被错误地视为文本格式。这种情况下&#xff0c;Excel 在求和时会忽略这些单元格。你可以通过将这些单元格的格式改为数值格式来解决。2. **隐藏的行或列**&#xff1a…

SpringBoot前后端传递数据时常用的JSON格式数据是什么?【讲解JSON概念、语法、以及Java对象互转】

SpringBoot前后端传递数据时常用的JSON格式数据是什么&#xff1f; JSON概念JSON语法JSON的两种结构&#xff1a;JSON字符串和Java对象互转&#xff1a;objectMapper.writeValueAsString(person);objectMapper.readValue(jsonStr,Person.class); 在SpringMVC框架中&#xff0c;…

Go 语言学习笔记之数组与切片

大家好&#xff0c;我是码农先森。 数组与切片的区别 在 Go 语言中&#xff0c;数组和切片是两种不同的数据结构&#xff0c;它们之间有以下主要区别。 参数长度&#xff1a; 数组&#xff08;Array&#xff09;&#xff1a;数组的长度是固定的&#xff0c;在创建时就需要指…

Python爬虫技术:动态JavaScript加载音频的解析

在当今的互联网世界中&#xff0c;JavaScript已成为构建丰富交互体验不可或缺的技术。然而&#xff0c;对于网络爬虫开发者来说&#xff0c;JavaScript动态生成的内容却带来了不小的挑战。音频内容的动态加载尤其如此&#xff0c;因为它们往往涉及到复杂的用户交互和异步数据加…

vscode配置vue格式化代码不管用

所有配置都配好了就是无法使用自己想要的vetur格式化代码 后台发现调整默认格式化代码的顺序就可以&#xff0c; 修改该后就可以了

java课程设计GUI学生信息管理系统

目录 系统内容.. 3 用户界面模块... 4 数据存储模块... 4 信息管理模块... 4 管理模块.. 4 主要模块的算法描述... 4 –简要的语言描述... 4 运行及调试分析&#xff08;测试数据及测试结果&#xff09;.. 5 课程设计总结... 7 参考文献&#xff08;至少三个&#xf…

分类判决界面---位势函数法

本篇文章是博主在人工智能等领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章分类在AI学习笔记&#…

SD卡无法读取的解决之道与预防措施

一、SD卡无法读取的现象描述 在数字化时代&#xff0c;SD卡已成为我们生活中不可或缺的数据存储设备&#xff0c;它广泛应用于数码相机、手机、平板等设备中。然而&#xff0c;当我们试图读取SD卡时&#xff0c;有时会遇到无法识别或无法访问的情况&#xff0c;这就是我们所说…

基于matlab的不同边缘检测算子的边缘检测

1 原理 1.1 边缘检测概述 边缘检测是图像处理和计算机视觉中的基本问题&#xff0c;其目的在于标识数字图像中亮度变化明显的点。这些变化通常反映了图像属性的重要事件和变化&#xff0c;如深度不连续、表面方向不连续、物质属性变化和场景照明变化等。边缘检测在特征提取中…

36.Http协议的设计与解析

Http协议比Redis协议复杂的多,如果程序员自己去实现,工作量大。 Netty已经把Http协议的编解码器实现好了,只需要简单的配置就可以使用。 做一个http的服务端需要HttpServerCodec。 看它继承的父类: 结合了两个类: HttpRequestDecoder(入站处理器extends Channelnbound…

微信小程序反编译 2024 unveilr.exe

ps&#xff1a;一开始用的反编译工具是wxappUnpacker&#xff0c;后面改为 unveilr.exe 1.先找到小程序安装目录“E:\聊天记录\WeChat Files\Applet”&#xff0c;要反编译小程序的包 文件夹下的名字对应的是小程序ID&#xff0c;如果不确定是哪个&#xff0c;可以删除->打…

使用SpringBootTest测试项目

当我们开发项目后&#xff0c;通常需要进行单元测试&#xff0c;确保开发符合预期。但是对于Springboot项目&#xff0c;依赖部分IOC容器对象的注入。比如代码中存在Autowired、Service、Mapper等。 1、确保pom.xml中包含了依赖&#xff0c;其中的version和scope&#xff0c;大…

流程控制相关

1.break语句 只能用在循环体内&#xff0c;用来结束当前循环 语法&#xff1a; while 循环条件表达式&#xff1a; 语句块 if 条件表达式&#xff1a; break 语句块 for i in 迭代对象&#xff1a; 语句块 if 条件表达式&#xff1a; break 语句块 小练&#xff1a; 求一…

52、U-boot2023的移植教程

uboot&#xff1a;https://ftp.denx.de/pub/u-boot/ nxp-uboot&#xff1a;https://github.com/nxp-imx/uboot-imx 1、顶层Makefile 文件加入编译的两种方式&#xff1a;以xxx/xxx.c文件为例 1、使用menuconfig: 先编辑.c所在目录下的Kconfig&#xff0…

element-plus form表单组件之el-date-picker日期选择器组件

el-date-picker日期选择器组件可根据年&#xff0c;月&#xff0c;日期&#xff0c;时间范围来进行选择&#xff0c;可以自定义日期格式&#xff0c;和样式&#xff0c;还提供多种内置事件。 主要属性如下 属性名说明类型可选值默认值model-value / v-model绑定值&#xff0c…

江协科技51单片机学习- p11 Proteus安装模拟51单片机

前言&#xff1a; 本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记&#xff0c;在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。 引用&#xff1a; Proteus快速入门&…

想更好应对突发网络与业务问题?您需要一款“全流量”

全流量分析&#xff0c;能为我做什么&#xff1f; 在生活中遇到问题&#xff0c;我们的第一反应可能是拿出手机拍照记录&#xff0c;方便后续处理。这些问题是临时的、突发的。 流量分析&#xff0c;就是网络中的“手机”&#xff0c;针对突发的网络故障和安全事件&#xff0…

骑砍战团mod制作所需工具

骑砍战团mod制作所需工具 多去骑砍中文站&#xff0c;最底下mod制作专区那边就可以找到大部分资源 文章目录 骑砍战团mod制作所需工具编译环境骑砍源码模型工具模型素材位置骑砍mod学习位置 编译环境 python2.7下载 根据界面安装完成之后&#xff0c;然后配置系统环境&#x…

【Python机器学习】NMF——将NMF应用于人脸图像

将NMF应用于之前用过的Wild数据集中的Labeled Faces。NMF的主要参数是我们想要提取的分量个数。通常来说&#xff0c;这个数字要小于输入特征的个数&#xff08;否则的话&#xff0c;将每个像素作为单独的分量就可以对数据进行解释&#xff09;。 首先&#xff0c;观察分类个数…