什么是Maven ??? (以及关于依赖,中央仓库,国内源)
文章目录
- 什么是 Maven
- 创建第一个 Maven 项目
- 依赖管理
- Maven 的仓库
- Maven 如何设置国内源
什么是 Maven
Maven :用于构建和管理任何基于java的项目的工具。**说白了就是管理 Java项目 的工具。**我们希望我们已经创建了一些东西,可以使Java开发人员的日常工作更容易,并且通常有助于理解任何基于Java的项目。关于 Maven 的详细信息可以查看 Apache Maven 的网站:Maven – 简介 (apache.org)
Maven 是一个独立工具,和 IDEA 没有任何关系,只不过 IDEA 把 Maven 给集成了,可以直接用;
举个例子:比如早期时候买火车票,我们买火车票是需要到火车站的售票窗口买,后来,有了 12306 之后,直接在12306上买就可以了,所以,12306只是将买火车票的操作给集成了
创建第一个 Maven 项目
⭕注意:如果没有 Maven 按钮,根据下图步骤添加:
Maven 常用命令的含义:
打包演示:
点击 clean 就可以删除掉
依赖管理
什么是依赖:依赖就是项目在运行是所需要的外部资源(jar包)称为依赖
Maven 是一个项目管理的工具,通过给 pom.xml 文件进行配置,来获取jar包,而不用手动的去添加。
pom.xml 就是 Maven 的配置文件,用来描述项目的各种信息
依赖配置
1.在 pom.xml 文件中输入 标签
2.在 标签中 输入 标签
3.在 标签中添加资源的坐标
但是,我们往往是不需要自己去动手输入的,直接从中央仓库中复制,在 IDEA 中粘贴即可,操作步骤如下:
举个例子:比如在添加 JDBC 依赖时:
①.打开 Maven Repository 搜素 mysql,获取 JDBC 资源(关于什么是Maven Reposity,在下面有详细的讲解)
Maven Repository :Maven Repository: mysql (mvnrepository.com)
②.选择你自己的 Mysql 对应的版本(我的是版本5)
③.复制 Maven 中的所有内容
④.粘贴到 pom.xml 文件中,复制完直接粘贴即可,所以,就不用我们再手动输入标签了
⑤.点击刷新(这两个随便一个都可以),进行下载,这样才算真正的引入依赖
如果像我这样出现黄色的下划线,不用管,只要不报出红色的错误就没事
从这个选项中就可以查看我们的依赖有没有引入成功
Maven 的仓库
Maven仓库分为:本地仓库 和 远程仓库
远程仓库又分为:中央仓库 和 私有服务器
1️⃣本地仓库:自己计算机上的一个目录(用来存储jar包)
当项目引入对应依赖 jar 包后,首先会先查找本地仓库,如果本地仓库有,则直接加载到项目中,如果没有,则根据坐标去中央仓库中下载对应的 jar 包到本地仓库,这个也是只会在第一次使用时下载一遍。
本地仓库路径如下:
2️⃣中央仓库:
中央仓库:Maven 软件中内置的一个远程仓库,有 Maven 团队维护,全球唯一,服务于整个互联网
仓库路径如下:
Central Repository: (maven.org)
中央仓库的查询界面:中央仓库给我们提供了一个界面版本的,也就是上面我们刚才引入 mysql 依赖的网站:Maven Repository: Hortonworks (mvnrepository.com)
查询界面和中央仓库中的内容可能会出现不一致,查询界面会有一定的滞后性,以中央仓库为准,但是一般来说都是很准的。
3️⃣国内源
中央仓库的服务器在国外,所以,在访问时候会比较卡,甚至访问失败,所以在使用时就比较麻烦,所以就有了一些国内源
国内源也是私有服务器,但是,它是在国内公开使用的,就像 阿里,腾讯这些大公司都会提供一些国内源,它是将一些国外的仓库搬到了中国大陆的服务器上,所以,国内源也是一种中央仓库,而它的下载速度会比较快。
4️⃣私有服务器
中央仓库和国内源都是公开的,所有人都可以看到,而私有服务器是公司独立使用的。
私有服务器也称为私服,一般由公司搭建的私有仓库
有了私服之后,Maven下载依赖的顺序就又发生了变化:
1.先从本地仓库中获取,本地仓库存在,直接从本地仓库中加载
2.如果本地仓库没有,就去私服仓库中寻找,如果存在,则从私服仓库中下载到本地仓库中
3.如果私服仓库中没有,就去中央仓库中下载,如果中央仓库中不存在,就报错
4.如果中央仓库中存在,就先下载到私服仓库中,再缓存到本地仓库中,然后再进行下载
同样,这个资源也是只在第一遍使用时下载即可,后续就不需要再下载了。
Maven 如何设置国内源
修改 Settings 文件:
1️⃣.根据路径,打开本地仓库中的 setting 文件
2️⃣.修改 settings 文件
在 settings 标签里面的 里面添加标签内容
内容如下:
<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url></mirror>
如果没有 settings 文件, 我给大家上传了一个,直接粘贴到该目录中即可
settings文件链接:gitee网站-settings文件
注意:这个国内源只是在我们当前自己学习的过程中使用,如果是在公司中的话,直接找同事要公司的 settings 文件即可,这个里面会包含公司的私服地址,账号和密码等等。
这两个地址也可以修改,因为,随着我们使用的时间越长,本地仓库中的东西会越来越多,建议可以放到D盘中,但是名字不要包含中文:
修改过程:
1.进入当前你自己的Maven配置的目录中,也就是.m2目录
2.将 .m2 目录中所有的内容拷贝到你指定的目录中(随意指定),我的就是在 D 盘当中
3.**修改 IDEA 中第一个地方的配置:**也就是上述图片中的两个路径,选择第二步中指定的新的 .m2 路径,一个指定 settings文件,一个 .m2 目录
4.修改 IDEA 中第二个地方的配置:
因为,在第一个配置中,修改的是当前项目中的 Maven 配置,如果新建一个项目的话,还得再重新修改,而在第二个配置中,就是永久修改,就算创建了新的项目,也不需要再进行修改了
相关文章:
什么是Maven ??? (以及关于依赖,中央仓库,国内源)
文章目录 什么是 Maven创建第一个 Maven 项目依赖管理Maven 的仓库Maven 如何设置国内源 什么是 Maven Maven :用于构建和管理任何基于java的项目的工具。**说白了就是管理 Java项目 的工具。**我们希望我们已经创建了一些东西,可以使Java开发人员的日常…...
c++期末考题笔试来咯
最后一道大题题目再现 写一个person类,有姓名,性别,年龄。然后在此基础上派生出教师类和学生类。教师类增加了以下数据:工号,职称,工资。学生类增加了以下数据成员:学号,专业&#…...
目标检测篇:如何根据xml标注文件生成类别classes的json文件
1. 介绍 之前在做目标检测任务的时候,发现很多的数据集仅有数据(只有图片标注的xml文件),没有关于类别的json文件,为了以后方便使用,这里记录一下 一般来说,yolo标注的数据集,只有第一个是数字类别&#x…...
spring见解2基于注解的IOC配置
3.基于注解的IOC配置 学习基于注解的IOC配置,大家脑海里首先得有一个认知,即注解配置和xml配置要实现的功能都是一样的,都是要降低程序间的耦合。只是配置的形式不一样。 3.1.创建工程 3.1.1.pom.xml <?xml version"1.0" en…...
Uncaught TypeError: Cannot read property ‘snj‘ of null
项目场景: 项目相关背景: 调试项目时,控制台出现红色报错信息 问题描述 问题: 调试项目时,控制台出现如下所示的报错信息: Uncaught TypeError: Cannot read property snj of nullat T.Inj.Ya [as Inj…...
Jenkins基础教程
目录 第一章、快速了解Jenkins1.1)Jenkins中一些概念介绍1.2)Jenkins和maven用途上的区别1.3)为什么使用Jenkins1.4)学习过程中的疑问 第二章、安装Jenkins2.1)安装之前的准备2.2)Windows中Jenkins下载安装…...
嵌入式C语言--WatchDog最全概念
嵌入式C语言–WatchDog最全概念 嵌入式C语言--WatchDog最全概念 嵌入式C语言--WatchDog最全概念一. 什么是Watchdog1)什么是“被狗咬”2)什么是喂狗 二. 基本思想三. 作用四. 监视目标1) 监视一个进程2)监视一个操作系统 五. 系统初始化时关闭…...
数据结构【树篇】(二)
数据结构【树篇】(二) 文章目录 数据结构【树篇】(二)前言为什么突然想学算法了?为什么选择码蹄集作为刷题软件? 目录树(一)、树的存储(二)、树和森林的遍历——并查集(三)、并查集的优化 结语 前言 为什么突然想学算法了…...
2024上海城博会|上海国际城市与建筑博览会-官 网
2024上海城博会|上海国际城市与建筑博览会 时间:2024年10月30日-11月1日 地点:上海世博展览馆 主办单位:联合国人居署 上海市住房和城乡建设管理委员会 协办单位:上海世界城市日事务协调中心 展会介绍 上海国际城市与建筑博览…...
Dockerfile - 基于 SpringBoot 项目自定义镜像(项目上线全过程)
目录 一、Dockerfile 自定义项目镜像 1.1、创建 SpringBoot 项目并编写 1.2、打包项目(jar) 1.3、编写 Dockerfile 文件,构建镜像 1.4、运行镜像并测试 一、Dockerfile 自定义项目镜像 1.1、创建 SpringBoot 项目并编写 a)简…...
论文查重降重写成大白话可以吗
大家好,今天来聊聊论文查重降重写成大白话可以吗,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 论文查重降重:用大白话解析 一、引言 写论文是每个…...
【WPF.NET开发】WPF中的命令
本文内容 什么是命令WPF 中的简单命令示例WPF 命令中的四个主要概念命令库创建自定义命令 命令是 Windows Presentation Foundation (WPF) 中的一种输入机制,与设备输入相比,它提供的输入处理更侧重于语义级别。 示例命令如许多应用程序均具有的“复制…...
怎么将epub转换成txt文件?
怎么将epub转换成txt文件?在当前时代,各种各样的电子书是很多人都喜欢接触并阅读的,但很少有人知道电子书格式的不同,其中就包括epub和txt格式,这两种格式虽然都可以展示文本但能达到的效果完全不一样,在某…...
Java单词排序
【问题描述】 编写一个程序,从一个文件中读入单词(即:以空格分隔的字符串),并对单词进行排序,删除重复出现的单词,然后将结果输出到另一个文件中。 【输入形式】从一个文件sort.in中读入单词。 …...
Moonsong Labs与Web3演变
作者:Derek Yoo 创建Moonsong Labs的理由 我们创建了Moonsong Labs,其使命是创建推动Web3采用的软件基础设施协议。我们的动力来自这样一个观念,即Web3使人类相互交往更加透明、高效和公正。这无疑是一个值得努力实现的目标,但更…...
流媒体学习之路(WebRTC)——GCC分析(4)
流媒体学习之路(WebRTC)——GCC分析(4) —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标:可以让大家熟悉各类Qos能力、带宽估计能力,提供每个环节关键参数调节接口并实现一个json全配置…...
k8s持久化存储(NFS-StorageClass)
一、StatefulSet由以下几个部分组成: 用于定义网络标志(DNS domain)的Headless Service用于创建PersistentVolumes的volumeClaimTemplates定义具体应用的StatefulSet 二、StatefulSet 特点 StatefulSet 适用于有以下某个或多个需求的应用&a…...
java servlet软件缺陷库管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
一、源码特点 java servlet软件缺陷库管理系统是一套完善的java web信息管理系统 系统采用serlvetdaobean(mvc模式),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOM…...
19|BabyAGI:根据气候变化自动制定鲜花存储策略
19|BabyAGI:根据气候变化自动制定鲜花存储策略 随着 ChatGPT 的崭露头角,我们迎来了一种新型的代理——Autonomous Agents(自治代理或自主代理)。这些代理的设计初衷就是能够独立地执行任务,并持续地追求长…...
面试经典150题(62-64)
leetcode 150道题 计划花两个月时候刷完,今天(第三十天)完成了3道(62-64)150: 62.(226. 翻转二叉树)题目描述: 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其…...
流量困境下,2024年餐饮商家的直播带货生意到底怎么做?
据官方数据显示,截至2023年2月,抖音生活服务餐饮商家直播间数量达到43万,2023年7月,抖音生活服务餐饮行业自播商家数较1月增长134%。可以说,直播带货已经成为餐饮商家的常态化的线上营销模式,也成为各大餐饮…...
C++ 具名要求-基本概念-指定该类型对象可以默认构造
指定该类型对象可以默认构造 要求 以下情况下,类型 T 满足可默认构造 (DefaultConstructible) : 给定 任意标识符 u, 下列表达式必须合法且拥有其指定的效果 表达式后条件T u对象 u 被默认初始化。T u{}对象 u 被值初始化或聚合初始化。…...
T527 Android13遥控适配
T527 Android13遥控的适配和官方提供的文档有些不一样,按照官方的文档不能够正常适配到自己的遥控器。 首先确保驱动是否有打开CONFIG_AW_IR_RX和CONFIG_RC_DECODERSy 以及CONFIG_IR_NEC_DECODERm,这个可以在longan/out/t527对应的目录下的.config查看是…...
第三部分使用脚手架:vue学习(61-65)
文章目录 61 创建vue脚手架![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f71d4324be0542209e690ab9e886d199.png)62 分析脚手架结构63 render函数64 修改默认配置65 ref 属性 61 创建vue脚手架 写完vue文件,没有脚手架做翻译,浏览器不认识…...
【Linux学习笔记】解析Linux系统内核:架构、功能、工作原理和发展趋势
操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是…...
springboot连接oracle报错ORA-12505解决方案
springboot连接oracle报错ORA-12505解决方案 springboot项目,在测试环境连接正常,生产环境连接数据库报错ORA-12505。 测试环境连接数据库语句为jdbc:oracle:thin:xxxx.xxxx.xxxx.xxxx:1521:orcl 生产环境修改对应ip后报错ORA-12505, TNS:listener does…...
服务器为什么大多用 Linux?
服务器为什么大多用 Linux? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「Linux的资料从专业入门到高级教程工具包」,点个关注,全部无偿共享给大家!&#…...
C++上位软件通过Snap7开源库访问西门子S7-200/合信M226ES数据块的方法
前言 上一篇文章中介绍了Snap7访问西门子S7-1200/S7-1500 DB块的方法,对于S7-200PLC是没有数据块访问的。S7-200PLC中Snap7只能通过访问MB块,VB块的方法进行和PLC之间的Snap7通信和数据交换。手头没有S7-200PLC故通过合信CTMC M226ES运动控制器进行测试&…...
通信及信号处理领域期刊影响因子、分区及期刊推荐-2024版
期刊名IF(202401)中科院分区(20231227)备注IEEE Journal on Selected Areas in Communications16.4计算机科学1区Top通信顶刊IEEE Transactions on Signal Processing5.4工程技术2区Top信号处理顶刊IEEE Transactions on Information Theory2.5计算机科学3区信息论顶刊IEEE Tra…...
cfa一级考生复习经验分享系列(十五)
备考背景: 本科211石油理科背景;无金融方面专业知识及工作经验;在职期间备考;有效备考时间2个月;12月一级考试10A。 复习进度及教材选择 首先说明,关于教材的经验分享针对非金融背景考生。 第一阶段&#x…...
温州市建设小学大南网站/南宁关键词排名公司
5 类型参数列表我们学习了模板函数和模板类的定义和使用。但是,看到的“类型形参表”都只有一个元素,那么,如果要定义多个类型,应该怎么样操作?在telplate<类型形参表>中,“类型形参表”可以定义多个…...
数据库型网站/在什么网站可以免费
本篇教程探讨了HTML5特性SSE和WebSocket的用法和比较,希望阅读本篇文章以后大家有所收获,帮助大家HTML5CSS3从入门到精通 。<在我们日常开发中,会遇到服务端和客户端的通讯,今天我们就来比较一下HTML5新特性SSE和WebSocket的用…...
河南那家公司做家具行业网站好/重庆seo排名外包
十步法的第二步是竞争对手分析,说到底其实就是“机会大不大”。比如,现在手头上有一张完整的香喷喷的大饼,是只有你一个人还是有好几个竞争对手都流着口水“觊觎”着这块大饼?实力强弱决定了能够抢到的大饼份额的大小,…...
建一个b2c网站要多少钱/百度怎么推广自己的店铺
环境 ubuntu16.04 Opencv3.4.5 Qt5.7.1 简述 在 ubuntu 中 做有关 opencv 的项目时,害怕搭建环境,因为搭建环境会花去很多时间和精力,这里自己总结了一种可以省去一些配置环境的时间和精力。 前提是第一次将 opencv 编译好,以…...
建设银行卡如何网站激活/seo什么意思中文意思
1. 注意:如果想使用Subtitle类型的单元格,需在Storyboard中将Protocell设置为subtitle类型,且Protocell的identifier必须与ViewController中cellForRow方法设置,保持一致,才能保证在subtitle行内容被显示出来。 - (UI…...
php做旅游网站/自己怎么制作网站
20175311 2018-2019-2 《Java程序设计》第7周学习总结 教材学习内容总结 这一周我主要学习了第八章的内容-常用实用类String类 构造String对象字符串的并置String类的常用方法字符串与基本数据的互相转化对象的字符串表示字符串与字符、字节数组正则表达式及字符串的替换和分解…...