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;希望对大家有所帮助。北京木…

Unity 通过代码控制Texture进行缩放

在实际应用开发中&#xff0c;有时候需要通过代码对Texture进行缩放。 有两个方法&#xff0c;一个是通过控制宽高进行缩放&#xff0c;另一个是通过比例值进行等比例缩放。 1、控制宽高的方法&#xff1a; /// <summary>/// 纹理缩放方法一&#xff0c;指定宽高/// &…

游戏开发原画的设计方法

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

如何在Python中操作Redis数据库

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

XIAO ESP32S3之AI应用

一、XIAO ESP32S3 AI应用示例 包含 ChatGPT语音助手、关键字识别等 英文:https://wiki.seeedstudio.com/xiao_esp32s3_speech2chatgpt/ 中文:SenseCraft 模型助手部署 | Seeed Studio Wiki 二、XIAO开发板TinyML项目展示 各种XIAO开发板基于Tiny ML的演示项目:XIAO 系列教…

链接共享平台LinkStack

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

Jetson AGX XAVIER刷机时提示invalid_request - Authorization flow not allowed

我下的版本是sdkmanager_1.9.2-10899_amd64.deb&#xff0c;安装后后直接在terminal输入 sdkmanager&#xff0c;出来后提示登录有问题&#xff0c;跳到浏览器链接 http://localhost:8080/?error_descriptionAuthorizationflownotallowed&statehttp://localhost:41369&a…

shell_exec 和 exec区别

shell_exec 和 exec 都是用于在 PHP 中执行系统命令的函数&#xff0c;但它们之间有一些区别。 返回值类型&#xff1a;shell_exec 函数返回命令的输出结果作为字符串&#xff0c;而 exec 函数将输出结果存储在数组中。 输出结果&#xff1a;shell_exec 函数返回命令的完整输出…

录音模块:WT588FM01高性能录音语音芯片IC,功能丰富,音质卓越,满足多样化需求

在音频市场日益繁荣的今天&#xff0c;用户对于录音模块的需求也日益多样化。唯创知音针对这一市场趋势&#xff0c;推出了高性能录音语音芯片模块WT588FM01。凭借其远距离录音、优质音质以及多样化的功能&#xff0c;它成为了众多电子产品中的首选之一。 WT588FM01是深圳唯创…

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…

11月27日,每日信息差

今天是2023年11月27日&#xff0c;以下是为您准备的20条信息差 第一、阿里达摩院AI突破胰腺癌早筛难题。通过平扫CT&#xff0c;在2万多真实世界连续病人群体中发现了31例临床漏诊病变&#xff0c;其中2例早期胰腺癌病患已完成手术治愈 第二、丰田汽车将于11月29日恢复丰田车…

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

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

深度解析异常值在数据分析中的重要性与应对策略

写在前面 在数据分析的过程中&#xff0c;异常值的存在常常是一个需要认真对待的问题。异常值可能影响分析的准确性&#xff0c;导致误导性的结论。本文将深入探讨以下异常值的应对策略&#xff0c;旨在为数据科学家们提供全面、易读、严谨的一些建议。 1.什么是异常值 异常…

Linux 安装 Minio 配置 HTTPS

安装 创建目录 [roott2 local]# mkdir minio [roott2 local]# cd minio [roott2 minio]# mkdir data下载 [roott2 minio]# wget https://dl.min.io/server/minio/release/linux-amd64/minio [roott2 minio]# chmod x minio # 赋权设置账号密码 minio 默认账号密码为 minio…

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

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