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

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.mzph.cn/news/858043.shtml

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

相关文章

【嵌入式Linux】i.MX6ULL 时钟树——理论分析

文章目录 0. 时钟树结构0.1 参考手册 Chapter 18​: Clock Controller Module (CCM)0.2 时钟信号路径 1. 时钟源——晶振1.1 外部低频时钟 - CKIL1.1.1 CKIL 同步到 IPG_CLK 解释 1.2 外部高频时钟 - CKIH 和 内部振荡器1.3 总结1.4 缩写补充 2. PLL时钟2.1 i.MX6U 芯片 PLL 时…

八爪鱼现金流-025-工作的终极目标,不是为了成为更好的员工

工作的终极目标&#xff0c;不是为了成为更好的员工。 而是解放时间和收入自动化 打造自己的被动收入!!! 八爪鱼现金流 八爪鱼

CMMM Plus+ Calculus Update 超级游戏大作 游戏说明

资源链接 关卡编辑器 ◽️使用 WASD 移动视图。 ◽️LMB 放置单元格。 ◽️Space LMB 删除单元格。Ctrl Space LMB 删除所有相同类型的单元格。 ◽️Q / E 旋转单元格。 ◽️Z / X 在单元格类别之间切换。 ◽️键 1-9 快速选择单元格。 ◽️按 F 显示可拖动的图块。 ⌨️控…

会声会影2024永久破解和谐版下载 包含激活码序列号

亲爱的创作伙伴们&#xff0c;今天我要分享一个让我的影视编辑生活大放异彩的神器——会声会影2024破解版本&#xff01;&#x1f389;&#x1f31f; &#x1f308;**功能全面升级**&#xff1a;作为一款专业的视频编辑软件&#xff0c;会声会影2024破解版本不仅继承了之前版本…

Springboot应用的信创适配

CentOS7在2024.6.30停止维护后&#xff0c;可替代的Linux操作系统-CSDN博客 全面国产化之路-信创-CSDN博客 信创适配评测-CSDN博客 Springboot应用的信创适配 Springboot应用的信创适配&#xff0c;如上图所示需要适配的很多&#xff0c;从硬件、操作系统、中间件&#xff08…

人工智能在数字病理切片虚拟染色以及染色标准化领域的研究进展|顶刊速递·24-06-23

小罗碎碎念 本期推文主题&#xff1a;人工智能在数字病理切片虚拟染色以及染色标准化领域的研究进展 这一期的推文是我发自内心觉得为数不多&#xff0c;特别宝贵的一篇推文&#xff0c;原因很简单——可参考的文献相对较少&方向非常具有研究意义&现在不卷。 数字病理…

Vue3+TypeScript项目实战——打造雨雪交加的智慧城市

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 ⚡开源项目&#xff1a; rich-vue3 &#xff08;基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL&#xff09; &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1…

三国之家网站的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;论坛管理&#xff0c;公告管理&#xff0c;三国视频管理&#xff0c;基础数据管理&#xff0c;三国图文管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#…

从工具产品体验对比spark、hadoop、flink

作为一名大数据开发&#xff0c;从工具产品的角度&#xff0c;对比一下大数据工具最常使用的框架spark、hadoop和flink。工具无关好坏&#xff0c;但人的喜欢有偏好。 目录 评价标准1 效率2 用户体验分析从用户的维度来看从市场的维度来看从产品的维度来看 3 用户体验的基本原则…

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

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

将WIN10的wifi上网分享给以太网接口

目录 打开网络设置设置属性点这里的设置将wlan主机的以太网接口IP设为自动获取 如果连接不成功&#xff0c;拔网线重连一次 打开网络设置 设置属性 点这里的设置 将wlan主机的以太网接口IP设为自动获取 如果连接不成功&#xff0c;拔网线重连一次

IOS开发学习日记(十六)

目录 App间的唤起和通信 App跳转 通过Scheme唤起其他App Universal Link 组件化 App间的唤起和通信 App跳转 使用URL Scheme支持App启动、跳转及参数传递 分享 / 登陆 / 拉起App Store等 设置URL Type 在UIApplication中处理参数和业务逻辑 -(BOOL)application:(UIApp…

Vue73-命名路由

一、路由的name属性 二、小结

stm32使用time模块输出pwm波,stm32-matlab开发电机控制

simulink: stm32cubemx : 注意在stm32配置了两路的一个互补输出&#xff0c;但实际上在matlab里只需要给定占空比就行了&#xff0c;他会自动输出互补&#xff0c;驱动电机&#xff0c;这是因为有点的电机输出需要6路&#xff0c;有的只需要1路&#xff0c;我们看下图就知道了…

一些3D数据集的简单介绍

一、Objaverse 1.0 Objaverse 1.0: a large dataset of objects with 800K (and growing) 3D models with descriptive captions, tags and animations. Assets not only belong to varied categories like animals, humans, and vehicles, but also include interiors and ex…

MySQL之复制(十三)

复制 复制的问题和解决方案 在主-主复制结构总写入两台主库 试图向两台主库写入并不是一个好主意&#xff0c;如果同时还希望安全地写入两台主库&#xff0c;会碰到很多问题&#xff0c;有些问题可以解决&#xff0c;有些则很难。一个专业人员可能需要经历大量的教训才能明白…

“Driver not loaded“问题解决方案

这两天又碰到了离谱的&#xff0c;愚蠢的&#xff0c;莫名其妙的&#xff0c;丧尽天良的错误。 之前已经解决过这个问题。这几天又碰上了&#xff0c;明明都已经把相应的dll放到了exe的同级目录&#xff0c;NND还是有问题&#xff01;&#xff01;&#xff01;卡了我一个晚上加…

c库函数:strrchr使用demo案例

1. strrchr库函数说明 头文件 <string.h> 函数形式 char *strrchr( const char *str, int ch ); 功能 在str所指向的空终止字节串中寻找字符ch的最后出现。 参数 str - 指向要分析的空终止字节字符串的指针 ch - 要搜索的字符 返回值 指向 str 中找到的字符的…

Emacs之实现目录替换(一百四十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

vue 中监听生命周期事件

vue 中监听生命周期事件 常见的添加自定义事件的写法希望在子组件挂载时通知父组件在模板上监听组件生命周期vue3 有类似的写法吗&#xff1f;jsx 中如何监听 vue3 组件的生命周期事件呢&#xff1f; vue3 父组件组件的生命周期的执行顺序是什么&#xff1f;小结 vue2 提供了一…