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

[Maven]下载安装、使用与简介

    很多框架的下载使用的流程和思路是差不多的,这里以maven做详细介绍。

下载安装与配置变量

下载

    首先,我们要使用maven,必须先下载它的相关文件。想要下载,我们可以直接搜索maven。找到它的官网。这里不绕弯子,直接给出官网链接。 

    进入官网后,我们的需求是下载。那么我们便在首页中寻找 “下载” 或 "Download" 字段。我们可以看到,maven的下载在这

    找到下载的位置之后,我们还要选择适配自己系统的文件。

 

    这里这么多链接,哪个是我们的需要的呢。我们先看表头,左边表头上面两个表示二进制运行文件,而下面两个是源代码,很显然我们要的不是maven的源码,所以选择上面两个。

      window常用的压缩文件格式后缀为.zip,就可以锁定第一列第二行的下载链接了。

    下载完成之后,我们开一个没有汉字、空格和特殊字符的文件夹,把下载好的zip文件解压到这个文件夹下面:

     repo是我创建的,先不急管这个。解压完成之后,我们就要配置环境变量,让maven的相关文件能够运行。

配置系统环境变量

    在文档管理中右键 "此电脑" ,点击属性,点击高级系统设置,点击环境变量。

    然后我们在下方的系统变量中创建一个名为MAVEN_HOME的环境变量

 

    变量名写MAVEN_HOME,变量值点击浏览目录,选择你刚刚解压出来的maven文件根目录(也就是再下一级就是 bin包、conf包等maven的文件了) ,记得选完之后一直点击确定返回到系统属性页面,才可以点击右上角的 叉号 关闭页面,否则不会保存刚刚配置的变量。

   然后我们打开cmd,输入mvn -v,如果显示了你所安装的maven相关信息,则表示成功。

配置maven相关配置

    环境变量配置好后,我们还需要配置maven的相关配置。找到maven下的conf文件夹的settings.xml文件。

    打开后,我们找到标号为localRepository的注解。里面会有一个 <localRepository>标签,

    将这个标签剪切到注释外面,将里面原本的内容替换为你的本地仓库地址。本地仓库文件夹放在哪里看个人喜欢和项目要求,我喜欢和maven放在一个目录下面。

 

    然后还要配置下载镜像,方便往后使用,因为我们在使用maven时需要下载我们项目需要的jar包,而maven中央仓库是国外的,国内直接下载会很慢,所以配置镜像网站的话会快很多。

    关于maven的镜像下载站国内有很多,这里我们选择阿里云的镜像网站。

    找到标签<mirrors>,在里面添加一个<mirror>元素(注释里面会给出一个模块),这里直接给出代码,将其复制到<mirrors>元素里面即可。

<mirror><id>central</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>https://maven.aliyun.com/repository/central</url>
</mirror>

    这里比较重要的就是url,一定不要输错镜像下载地址的url。

    如果要卸载maven,删除系统变量和相关文件即可。maven不是一个软件,不需要在应用管理里卸载。

IDEA使用maven

1.打开IDEA设置

 

2.打开IDEA的maven设置

 

    在这里

1.主路径修改为你的maven根目录

2.用户设置文件点击重写,然后点击输入框里面右边的那个文件夹小图标 ,选择你maven的settings.xml文件

3.本地仓库则是你创建出来给maven当本地仓库的文件夹

Maven简介

maven的作用

    maven是一个项目管理工具,主要作用是在项目开发阶段对项目进行依赖管理和项目构建,以及管理插件。

    为什么会出现maven这东西?依赖管理还要用得上工具?

    其实也很简单就能想明白。刚学编程时,基本上都是一个类乱塞东西,可能最初的写个猜拳游戏,所有方法一个类就搞完了。再后面写大点,就开始分了几个类,再到正式学项目构建和框架使用,已经开始前后端分离再分包了。我们要使用的依赖接下来会接近指数级增长,比如一个大的项目,一个lib目录下塞所有的jar包,这里就不是几个包了,小的项目几十个jar包,大的项目直接上百都是基本操作,公司自己也会有自己买来或开发的技术,也会打包成jar文件,同时还会分版本,有时候还会版本不一致出错。一个lib下全部放满,就不便于管理和使用了。这是我的理解。

官方语言来讲,有三个不好:

1.造成包的冗余:每个项目需要复制一次这些包,占用大量的空间。

2.不易管理:不同的开发者使用的jar包的版本不同,导致包不统一,甚至出现包的冲突。

3.阅读性差 :  应该导入哪些jar包,这些包又依赖了哪些包并不清楚。

maven依赖管理

    即对jar包的管理,以往我们需要下载好jar包,粘贴到工程的lib目录下面去,使用maven的依赖管理功能,想要引入某个包只需要导入maven的坐标即可,它会通过坐标找到对应的jar包并下载到本地的maven仓库。

如何找到想要的jar包对应的maven坐标?

    首先我们要来到maven的中央仓库,这里直接给出链接。

    在主页面上面的搜索栏搜索你想要的jar包。

    搜索之后会出现这个页面,我们点击黑色标题

 

     Version表示版本号,Usages表示该版本的下载使用量,Date表示该版本的发行日期。

     我们选择使用人数较多的版本,点击对应的Version下的蓝色字体小框

     下方红框框部分便是我们所需要的jar包对应的maven坐标了。

     将光标代码复制,粘贴到我们使用了maven的项目的pom.xml文件里面:

 

     每个项目可以设置多个。实际上我们的jar包全部存在maven的本地仓库下面,我们往后每创建一个项目,只需要在这个pom.xml里写上光标即可。

仓库

    maven的仓库大致分为本地仓库、中央仓库、私有仓库。

本地仓库:相当于本地缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库。第二次不需要从远程仓库去下载,先从本地仓库找,如果找不到才会去远程仓库找。

中央仓库:也就是有在maven官方团队运营维护的元仓库,经过登记的jar包都会在这上面出现。仓库中jar由专业团队统一维护。中央仓库的地址:http://repo1.maven.org/maven2

私有仓库:其实我们的本地仓库和一些公司提供的镜像仓库,都算私有仓库。包括一些公司,也会有自己的仓库,而且会有公司私有的未在maven官方登记开源的jar包。有时候有些保密性强的公司,公司局域网是和外网断开的,这个时候你在公司上班,maven仓库就需要配置为公司的maven仓库。

相关文章:

[Maven]下载安装、使用与简介

很多框架的下载使用的流程和思路是差不多的&#xff0c;这里以maven做详细介绍。 下载安装与配置变量 下载 首先&#xff0c;我们要使用maven&#xff0c;必须先下载它的相关文件。想要下载&#xff0c;我们可以直接搜索maven。找到它的官网。这里不绕弯子&#xff0c;直接给出…...

056 WXML+ WXSS+PHP+LW+校园配送商城微信小程序开发与设计 源码 文档 全套资料

校园配送微信小程序 1.项目描述2. 1.绪论3.项目技术与功能4.界面展示5.源码获取 1.项目描述 摘 要 近几年来&#xff0c;随着互联网和电子商务的快速发展和普及&#xff0c;改变了人们日常消费模式。尤其是移动互联网的相结合&#xff0c;使得人们日常生活中更多的是通过手机移…...

Python 在同一/或不同PPT文档之间复制幻灯片

复制幻灯片可以帮助我们更高效地完成工作&#xff0c;节省大量的制作时间。通过复制现有的幻灯片&#xff0c;可以快速创建新的演示文稿&#xff0c;而无需重新设计板式样式等。此外&#xff0c;复制幻灯片还可以帮助我们保持内容的一致性&#xff0c;使整个PPT演示文稿看起来更…...

C#生成CSR(CertificateSigningRequest)和密钥

使用C#原生生成CSR(CertificateSigningRequest)和密钥。 生成的私钥妥善保存&#xff0c;丢失无法找回。 调用 var contents X509Helper.SigningRequestHelper.CreateSigningRequest("yourdomain.com", ["*.yourdomain.com"], X509Helper.AsymmetricAl…...

Docker 安装 Oracle创建表空间并导入数据库

一、Docker 安装Oracle 1、检查docker 版本 2、docker 下载镜像 3、 docker启动容器 4、 进入容器内部 5、安装成功&#xff0c;使用客户端工具连接 二、创建数据库用户与表空间 1、查询数据库文件位置 2、创建表空间 3、创建用户 4、设置权限 三、导出数据库DMP …...

elementui table子级tree懒加载bug

1. 删除子级刷新列表子级依然显示 2.更新状态子级列表未刷新 3.编辑子级后刷新页面显示状态未变更 el-table 树表格load源码 首先&#xff0c;load可以执行&#xff0c;但是只剩一个子节点就有问题&#xff0c;那么就直接可以定位bug在load方法里&#xff1a; 文件路径&am…...

AI与低代码技术融合:如何加速企业智能化应用开发?

引言 随着全球数字化转型的步伐加快&#xff0c;企业在智能化应用开发方面面临着前所未有的挑战和机遇。传统的软件开发方式往往需要大量的技术人员、时间和资源&#xff0c;而在瞬息万变的市场环境中&#xff0c;这种模式显得效率低下且难以满足企业快速迭代和创新的需求。 与…...

【C#】新建窗体文件,Form、UserControl

从用途、功能性和架构方面进行描述。 1. 继承自 Form 的窗体&#xff08;通常是窗口&#xff09;&#xff1a; 在 C# 中&#xff0c;Form 是用于创建应用程序的主窗口或对话框窗口的类。当您继承自 Form 时&#xff0c;您创建的是一个完整的窗口&#xff0c;可以显示内容、与…...

ansible学习笔记之02command模块与shell模块

目录 1、概述 2、模块介绍 2.1 command模块 2.2 shell模块 2.3 小结 3、实验 3.1 测试ls命令 3.2 测试环境变量 3.3 测试操作符">" 1、概述 本文介绍ansible的command模块与shell模块&#xff0c;并通过实验比对两个模块的异同。 2、模块介绍 2.1…...

在Docker中部署禅道,亲测可用

1、确保centos中已安装docker docker -v 2、启动docker systemctl start docker 3、可设置docker开机启动 systemctl enable docker.service 4、获取最新版禅道开源版镜像 docker pull idoop/zentao 5、运行镜像生成禅道容器【创建 /data/www /data/data 目录】 doc…...

C++(十二)

前言&#xff1a; 本文将进一步讲解C中&#xff0c;条件判断语句以及它是如何运行的以及内部逻辑。 一&#xff0c;if-else,if-else语句。 在if语句中&#xff0c;只能判断两个条件的变量&#xff0c;若想实现判断两个以上条件的变体&#xff0c;就需要使用if-else,if-else语…...

【数学建模】线性规划问题及Matlab求解

问题一 题目&#xff1a; 求解下列线性规划问题 解答&#xff1a; 先将题目中求最大值转化为求最小值&#xff0c;则有 我们就可以得到系数列向量: 我们对问题中所给出的不等式约束进行标准化则得到了 就有不等式约束条件下的变系数矩阵和常系数矩阵分别为&#xff1a; 等式…...

【JavaWeb后端学习笔记】Spring全局异常处理器

在程序运行时&#xff0c;不可避免的会出现异常。在三层开发架构中&#xff0c;当Mapper层出现异常、如果不进行处理会抛给Service层&#xff0c;如果Service层也不处理则会抛给Controller层&#xff0c;通常Controller层有许多接口&#xff0c;如果对每个接口单独处理异常&…...

PT8M2102 触控型 8Bit MCU

1 产品概述 ● PT8M2102 是一款基于 RISC 内核的8位 MTP 单片机&#xff0c;内部集成了电容式触摸感应模块、TIMER&#xff0c;PWM、LVR、LVD、WDT等外设&#xff0c;其主要用作触摸按键开关&#xff0c;广泛适用于触控调光、电子玩具、消费电子、家用电器等领域&#xff0c;具…...

4. React 性能优化技巧:如何让你的应用更快

在构建大型应用时&#xff0c;性能优化是一个非常重要的话题。React 提供了许多优化工具&#xff0c;帮助我们提高应用的渲染速度和响应能力。本文将分享一些常见的 React 性能优化技巧。 4.1. 使用 React.memo 缓存组件 当组件的 props 没有变化时&#xff0c;React 默认不会…...

pytest中使用conftest做测试前置和参数化

pytest中比较高阶的应用是&#xff0c;使用conftest去做测试前置工作、测试收尾工作和参数化。conftest是pytest的一个组件&#xff0c;用于配置测试环境和参数。通过conftest, 可以创建一个可复用的测试配置文件&#xff0c;以便在多个测试模块之间共享配置信息。即&#xff0…...

Spring Boot 中使用 @Transactional 注解配置事务管理

事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务&#xff1b;声明式事务基于 AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污…...

MATLAB 建筑顶面面积计算(95)

MATLAB 建筑顶面面积计算(95) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 根据给出的建筑顶面点云,计算建筑面积,具体的方法实现和结果如下: 二、算法实现 1.代码 代码如下(示例): % 从 PLY 文件读取点云数据 filename = D:\shuju\屋顶2.ply; % 替换为你的…...

Linux网络编程之---组播和广播

一.组播 1.概述 单播地址标识单个IP 接口&#xff0c;广播地址标识某个子网的所有IP 接口&#xff0c; 多播地址标识一组IP 接口。单播和广播是寻址方案的两个极端(要么单个要么全部)&#xff0c; 多播则意在两者之间提供一种折中方案。多播数据报只应该由对它感兴趣的接口接收…...

Apache Dolphinscheduler可视化 DAG 工作流任务调度系统

Apache Dolphinscheduler 关于 一个分布式易扩展的可视化 DAG 工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系&#xff0c;使调度系统在数据处理流程中开箱即用。 DolphinScheduler 的主要特性如下&#xff1a; 易于部署&#xff0c;提供四种部署方式&am…...

s2-pro效果惊艳展示:情感化语音合成——喜悦、平静、关切语调

s2-pro效果惊艳展示&#xff1a;情感化语音合成——喜悦、平静、关切语调 1. 专业级语音合成新标杆 s2-pro作为Fish Audio开源的专业级语音合成模型镜像&#xff0c;正在重新定义文本转语音的技术边界。不同于传统单调的语音合成&#xff0c;这款工具能够精准捕捉并复现人类语…...

STP安全特性实战:如何用bpduguard和bpdufilter防止网络攻击(附真实案例)

STP安全特性实战&#xff1a;如何用bpduguard和bpdufilter防止网络攻击&#xff08;附真实案例&#xff09; 在企业网络架构中&#xff0c;生成树协议&#xff08;STP&#xff09;的安全防护常常被忽视&#xff0c;直到某天凌晨2点&#xff0c;值班工程师突然接到全网瘫痪的告警…...

如何突破Windows权限壁垒?系统管理专家的秘密武器

如何突破Windows权限壁垒&#xff1f;系统管理专家的秘密武器 【免费下载链接】NSudo [Deprecated, work in progress alternative: https://github.com/M2Team/NanaRun] Series of System Administration Tools 项目地址: https://gitcode.com/gh_mirrors/ns/NSudo 在W…...

保姆级教程:在OrangePi 5 Plus上从SSD启动Ubuntu 22.04,并配置ROS2 Humble环境

OrangePi 5 Plus开发板全栈配置指南&#xff1a;从SSD启动到ROS2 Humble环境搭建 拿到一块OrangePi 5 Plus开发板时&#xff0c;如何快速搭建一个稳定高效的开发环境&#xff1f;本文将手把手带你完成从系统烧录到ROS2环境配置的全过程&#xff0c;特别针对ARM64架构的优化方案…...

Step3-VL-10B部署案例:金融APP界面自动化测试,覆盖85%人工回归用例

Step3-VL-10B部署案例&#xff1a;金融APP界面自动化测试&#xff0c;覆盖85%人工回归用例 1. 项目背景与痛点 金融APP的每一次版本更新&#xff0c;都伴随着一场紧张的回归测试。测试团队需要反复验证登录、转账、理财购买、账单查询等几十个核心功能&#xff0c;确保新代码…...

5分钟打造私人语音助手:开源离线语音键盘Sayboard全解析

5分钟打造私人语音助手&#xff1a;开源离线语音键盘Sayboard全解析 【免费下载链接】Sayboard An open-source on-device voice IME (keyboard) for Android using the Vosk library. 项目地址: https://gitcode.com/gh_mirrors/sa/Sayboard 在智能手机普及的今天&…...

Qwen3-14B-Int4-AWQ助力运维智能化:日志分析与故障排查实战

Qwen3-14B-Int4-AWQ助力运维智能化&#xff1a;日志分析与故障排查实战 1. 运维工程师的日常痛点 凌晨三点&#xff0c;你的手机突然响起。系统告警显示某核心服务出现异常&#xff0c;你需要立即登录服务器查看日志。面对几十GB的日志文件&#xff0c;你不得不用grep、awk等…...

MAX30102传感器总是不准?Arduino避坑指南:从焊接绝缘到手指摆放的5个关键细节

MAX30102传感器精度优化全攻略&#xff1a;从硬件调试到算法校准的完整解决方案 MAX30102作为一款高集成度生物传感器&#xff0c;在心率、血氧监测领域应用广泛&#xff0c;但许多开发者在Arduino平台上使用时常遇到数据不稳定、测量偏差大的问题。本文将系统性地剖析影响测量…...

从XMind到禅道:定制化脚本实现测试用例高效导入

1. 为什么需要从XMind导入测试用例到禅道&#xff1f; 在日常测试工作中&#xff0c;XMind思维导图因其直观的结构和高效的编辑方式&#xff0c;成为很多测试工程师编写测试用例的首选工具。我自己也深有体会&#xff0c;用XMind梳理测试点特别顺手&#xff0c;一个下午就能完成…...

Redis监听Key过期事件报错?教你两种绕过CONFIG命令的实用方案

Redis监听Key过期事件的两种安全实践方案 Redis的Key过期事件监听是许多业务场景中的核心需求&#xff0c;比如订单超时处理、会话管理、缓存刷新等。但在云服务环境中&#xff0c;开发者常会遇到ERR unknown command CONFIG的报错&#xff0c;这通常是因为云服务提供商出于安全…...