Maven 介绍

在这里插入图片描述

文章目录

  • 什么是 maven
  • 为什么要选择maven
  • maven 仓库
    • 什么是maven中央仓库
    • 什么是maven本地仓库
  • idea如何创建出maven项目
  • 如何引入第三方库依赖
    • 配置国内源
  • 下载 Maven Helper 插件查看各个项目之间的依赖关系

什么是 maven

Maven是 Apache 下的一个纯 Java 开发的开源项目,是一个项目构建和管理的工具。它提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。 Maven是一个项目构建工具,它简化和标准化项目建设过程,处理编译, 分配, 文档, 团队协作和其他任务的无缝连接。Maven增加可重用性并负责建立相关的任务。

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

Maven可以对Java项目进行构建、依赖管理,它也可被用于构建和管理各种项目,例如C#、Ruby、Scala和其他语言编写的项目。Maven能够帮助开发者进行项目构建、依赖管理、文档生成等任务,提高开发效率。

使用Maven可以很方便地管理项目的构建、报告和文档,并且可以自动下载项目所需的依赖库,使得开发人员可以将更多的精力投入到开发工作中,而不是手动管理项目的构建和依赖。

为什么要选择maven

选择使用Maven的原因主要有以下几点:

  1. 统一的项目结构:Maven为所有的项目提供了一个统一的目录结构,使得项目的管理变得更为简单和清晰。
  2. 强大的依赖管理:Maven能够很好地管理项目的依赖关系,它可以帮助开发者自动下载和安装项目所需的依赖库,避免了手动管理这些库的麻烦。
    自动化构建:Maven能够自动化地构建项目,包括编译、测试、打包、部署等步骤,这极大地提高了开发效率。
  3. 丰富的插件:Maven拥有丰富的插件,这些插件可以帮助开发者快速地完成各种任务,例如生成文档、运行测试等。
  4. 易于集成:Maven能够很容易地与其他工具集成,例如版本控制系统、持续集成工具等,这使得项目的开发和管理变得更加灵活。
  5. 社区支持:Maven有着庞大的的社区支持,这意味着当你遇到问题时,你可以从社区中获取帮助。
  6. 文档生成:Maven可以自动生成项目的文档,这使得开发者可以更加方便地了解项目的结构和各部分的细节。
  7. 项目管理:Maven可以帮助开发者进行项目的管理,例如追踪项目的依赖关系、管理项目的构建过程等。

maven 仓库

maven 仓库分为两大类:本地仓库和远程仓库,其中远程仓库⼜分为中央仓库,私服和其他公共库。

什么是maven中央仓库

Maven中央仓库是一个公共的、可访问的Maven仓库,它包含了大量的开源Java项目的构建文件和依赖库,Maven用户可以从中央仓库中下载所需的依赖库,以便在他们自己的项目中使用。中央仓库是由Maven团队自己维护的,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。

https://repo.maven.apache.org/maven2/

在这里插入图片描述

上面是maven的中央仓库,我们可以根据目录找到需要的第三方依赖,当然还有一个也是中央仓库,不过这个中央仓库界面看着容易查找。

https://mvnrepository.com/

在这里插入图片描述

什么是maven本地仓库

Maven本地仓库是指用于存储项目依赖项的本地文件系统目录。当你构建一个Maven项目时,Maven会自动下载所需的依赖项,并将它们存储在本地仓库中。这样,当你再次构建项目时,Maven将会从本地仓库中获取依赖项,而不是再次下载它们,从而提高构建的效率。默认情况下,Maven本地仓库位于用户的主目录下的“.m2”目录中。在该目录下,有一个名为“repository”的子目录,用于存储所有的依赖项。每个依赖项都有一个特定的目录结构,其中包含了该依赖项的组织、名称、版本等信息。通过使用本地仓库,Maven可以更好地管理和控制项目的依赖项,使得构建过程更加可靠和可重复。

这是我的电脑的默认maven本地仓库。

在这里插入图片描述

在这里插入图片描述

idea如何创建出maven项目

因为maven项目管理的优势,所以idea自动继承了maven,我们只需要在创建项目的时候勾选maven就可以了。

在这里插入图片描述
创建完成项目之后 会自动生成下面的目录结构。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

如何引入第三方库依赖

之前,在没有创建maven项目的时候,我们需要将第三方库的 jar 包给下载下来,然后给导入到 idea 中,这样会显得很麻烦,而我们创建了 maven 项目之后则只需要将某一个第三方库的坐标给导入到 maven 项目的 pom.xml 文件中即可。

这里我们以引入 MySQL 依赖为例。

在中央仓库搜索到我们需要的 MySQL 版本。
在这里插入图片描述
在这里插入图片描述
将第三方库的依赖导入到 maven 项目的 pom.xml 文件中。

在这里插入图片描述

当导入之后,我们还需要刷新 pom.xml 文件,使之下面我们刚刚导入的 MySQL 第三方库。

在这里插入图片描述
这里有人可能会出现下载不下来这个第三方库的情况,这是因为:当我们第一次导入第三方库的时候,需要去 maven 的中央仓库去下载这个第三方库,而 maven 的中央仓库在国外,所以我们访问 maven 中央仓库的时候速度可能会很慢。

配置国内源

这里就需要我们配置国内源,也就是 maven 中央仓库的克隆仓库,这个克隆仓库因为在国内,所以访问速度就会比国外的快。

这里我们选择的是阿里源。

首先我们需要打开下载的 maven 文件下的 settings.xml 文件,如果大家没下载 maven,可以去 maven 官网下载https://maven.apache.org/download.cgi?.

在这里插入图片描述
下载完成之后,找到刚刚下载的 maven 位置,并且找到 settings.xml 文件。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
打开这个 settings.xml 文件。将下面的代码复制在 <mirrors> </mirrors> 标签内。

<mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/repositories/central/</url></mirror>

在这里插入图片描述
然后将下面的代码复制到 <profiles> </profiles> 标签内,这个jdk版本根据自己的 jdk 版本修改。

<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>

在这里插入图片描述
这个文件配置完成之后,我们还需要在idea中设置maven地址。

在这里插入图片描述

在这里插入图片描述
当配置好国内源之后,我们就点击刷新这个poem.xml文件,下载依赖。

注意:如果你连接的校园网或者其他企业WiFi的时候,你访问国外网站的时候是不被允许的,所以访问maven中央仓库的时候我们可以连接自己的手机热点。

当引入 MySQL 第三方库之后,我们就可以使用了。

在这里插入图片描述

下载 Maven Helper 插件查看各个项目之间的依赖关系

在这里插入图片描述
在这里插入图片描述
下载完成之后,我们就可以根据这个插件看到各个项目之间的依赖关系。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

DDD 系统间的七种关系梳理与实践

系统间的七种关系 本节将根据耦合度从高到低逐一探讨这些关系。耦合度高有时并不是坏事&#xff0c;它能够让团队内部的系统更加内聚&#xff0c;而不是无法整合的碎块。我们应该根据具体情况进行选择。 因为系统间关系往往也是组织架构的反映&#xff0c;此处每种关系除了描…

超卓航科聚国内外专家学者,共推冷喷涂技术的发展与应用

11月24日——26日&#xff0c;冷喷涂技术及其在增材制造中的应用专题会在襄阳召开&#xff0c;来自国内外200多名科技工作者齐聚一堂&#xff0c;共同交流冷喷涂技术的研究与应用。 本次专题研讨会由中国机械工程学会表面工程分会主办&#xff0c;湖北超卓航空科技股份有限公司…

【EasyExcel实践】导出多个sheet到多个excel文件,并压缩到一个zip文件

文章目录 前言正文一、项目依赖二、封装表格实体和Sheet实体2.1 表格实体2.2 Sheet实体 三、核心实现3.1 核心实现之导出为输出流3.2 web导出3.3 导出为字节数组 四、调试4.1 构建调试用的实体类4.2 控制器调用4.3 测试结果 五、注册大数转换器&#xff0c;长度大于15时&#x…

webGL开发虚拟实验室

开发虚拟实验室是一个具有挑战性但也非常有趣和有价值的任务。通过 WebGL&#xff0c;你可以创建交互式、沉浸式的虚拟实验室&#xff0c;使用户能够进行实验和学习。以下是一些步骤和关键考虑因素&#xff0c;帮助你开始开发虚拟实验室&#xff0c;希望对大家有所帮助。北京木…

游戏开发原画的设计方法

游戏原画设计是游戏开发中至关重要的一环&#xff0c;因为它直接影响到游戏的视觉吸引力和用户体验。以下是一些常见的游戏原画设计方法&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 理解游戏概念&…

如何在Python中操作Redis数据库

目录 一、安装redis-py库 二、连接Redis数据库 三、执行操作 1、设置和获取键值对 2、删除键值对 3、获取列表数据 四、处理数据 1、使用哈希表&#xff08;Hash&#xff09;处理关联数据 2、使用列表&#xff08;List&#xff09;处理有序数据 3、使用集合&#xff…

链接共享平台LinkStack

什么是 LinkStack &#xff1f; LinkStack 是一个独特的平台&#xff0c;为在线管理和共享链接提供了高效的解决方案。平台提供了一个类似于 Linktree 的网站&#xff0c;它可以让用户克服社交媒体平台上只能添加一个链接的限制。借助 LinkStack&#xff0c;用户可以轻松链接到…

8 有损压缩的.jpg图片文件格式详解,解封装拆包

有损压缩的.jpg文件 作者将狼才鲸创建日期2023-11-28 1&#xff09;简述 JPEG文件描述 JPEG协议格式分为JPEG、渐进式JPEG&#xff08;图片先显示一部分再显示全部&#xff09;、JPEG2000&#xff08;压缩品质更好&#xff0c;压缩率更高&#xff09;压缩模式&#xff1a;顺序…

苹果mac屏幕投屏镜像工具AirServer2024

airserver 是什么软件&#xff1f;AirServer 是一款 Airplay Mac屏幕镜像应用&#xff0c;AirServer可以通过 mac 实时接收iPhone、iPad以及Android设备的实时屏幕画面。AirServer 可以将一个简单的大屏幕或投影仪变成一个通用的屏幕镜像接收器。在您的大屏幕上启用 AirServer …

Databend 开源周报第 121 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 支持追加流 Da…

python之pyqt专栏7-信号与槽3

在上一篇文章中python之pyqt专栏6-信号与槽2-CSDN博客中&#xff0c;我们可以了解到对象可以使用内置信号&#xff0c;这些信号来自于类定义或者继承过来的。我们可以对这些信号可以通过connect连接槽函数。 需求 现在有一个需求&#xff0c;有两个UI界面“untitled.ui”和“u…

如何集成一个TypeScript开发环境?

首先要安装个node.js。Node.js (nodejs.org) 然后我们随便建一个文件夹&#xff0c;并且打开它运行到终端 然后再运行命令&#xff1a; npm install typescript -g 成功后 尝试使用 tsc -v 查看版本 接下来再使用命令&#xff1a; tsc --init 我们在.ts文件中尝试输出一些…

.mat格式文件是什么?及将png,jpg,bmp,gif,tiff,psd等格式图片转为.mat格式(附代码)

很多深度学习网络的输入要求为.mat格式&#xff0c;当然也可以直接修改输入数据的代码&#xff0c;比如修改为使用OpenCV读取图片等&#xff0c;但有些网络修改起来比较麻烦&#xff0c;且.mat数据有很多优势&#xff0c;所以部分网络最好还是用默认的.mat格式数据 目录 一、.…

【从零开始学习Linux】一文带你了解yum周边生态及vim常见模式

&#x1f6a9;纸上得来终觉浅&#xff0c; 绝知此事要躬行。 &#x1f31f;主页&#xff1a;June-Frost &#x1f680;专栏&#xff1a;Linux入门 &#x1f52d;【从零开始学习Linux】系列均属于Linux入门&#xff0c;主要包含Linux操作系统下的指令、操作、权限以及开发工具&a…

​无人机摄影测量

无人机摄影测量技术是传统航空摄影测量手段的有力补充&#xff0c;具有机动灵活、高效快速、精细准确、作业成本低、生产周期短、影像获取空间分辨率高、高危地区探测等优势。无人机与航空摄影测量相结合使得“无人机数字低空遥感”成为航空遥感领域的一个崭新发展方向。无人机…

盘点67个Android系统源码安卓爱好者不容错过

盘点67个Android系统源码安卓爱好者不容错过 学习知识费力气&#xff0c;收集整理更不易。 知识付费甚欢喜&#xff0c;为咱码农谋福利。 源码下载链接&#xff1a;https://pan.baidu.com/s/1zOSFwPJwDJLFfoeRJy9llg?pwd8888 提取码&#xff1a;8888 项目名称 Accelera…

VT-VRPA2-1-1X/V0/T5控制4WRE6比例方向阀放大板

带阀芯位移反馈不带集成式放大器比例方向阀控制放大器&#xff0c;替代力士乐同型号产品&#xff0c;可以完全互换使用&#xff1b;适用于控制力士乐系列带电位置反馈的4WRE6通径和4WRE10通径2X系列比例方向阀&#xff1b;0~10V、4~20mA指令控制信号任意可选&#xff1b;直接安…

[前端] V8引擎编译原理

文章目录 1.什么是V81.1 扫描器Scanner1.2 解析器parser1.3 预解析PreParser1.4 解释器Ignition1.5 编译器TurboFan 1.什么是V8 V8是谷歌的开源高性能JavaScript和WebAssembly引擎&#xff0c;用C编写。它被用于Chrome和Node.js等。它实现ECMAScript和WebAssembly&#xff0c;…

网易区块链

目录 网易区块链 网易区块链 网易区块链成立于2017年,致力于Web3.0区块链技术的研发和应用。自主研发的区块链“天玄”引擎,在单链场景下支持每秒最高30万笔交易,单日可处理上链数据超10亿。 与国家信息中心、杭州互联网公证处等机构合作,支持公证信息存储与算法解决方案…

海康运行管理中心 RCE漏洞复现

0x01 产品简介 海康威视是以视频为核心的智能物联网解决方案和大数据服务提供商。海康运行管理中心是一款功能强大、易于使用的安防管理平台&#xff0c;能满足用户对视频监控、报警管理、设备配置和数据统计等方面的需求&#xff0c;帮助用户建立高效、智能的安防系统。 0x02…