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 插件查看各个项目之间的依赖关系

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鼎捷副总裁谢丽霞:从四大趋势来看,数智时代企业如何加速研发创新

目录 导读 01 研发创新 势不可挡 ① 从逆向设计走向正向设计 ② 从专业协助走向全面协同 ③ 从单点场景走向业务闭环 ④ 从知识管理走向知识工程 02 鼎捷雅典娜 数智驱动企业新未来 03 鼎捷PLM 赋能企业研发创新 导读 研发&#xff0c;企业长青的必备源动能。如何在…

游戏录屏怎么录?学会这几招,轻松搞定!

电子游戏已成为人们日常生活中重要的娱乐方式之一&#xff0c;许多玩家希望在游戏的过程中录制一些精彩的瞬间&#xff0c;或与他人分享自己的游戏体验&#xff0c;因此游戏录屏成为了一种普遍的需求。可是游戏录屏怎么录呢&#xff1f;在本文中&#xff0c;我们将为大家介绍两…

OpenGL笔记:纹理的初次使用

说明 纹理的代码写完后&#xff0c;一直出不来结果&#xff0c;原因是没有设置GL_TEXTURE_MIN_FILTER&#xff0c; 它的默认值为GL_NEAREST_MIPMAP_LINEAR&#xff0c; 因为这里我还没用到Mipmap&#xff0c;所以使用这个默认值&#xff0c;结果是错误的&#xff0c;关于mipma…

Paragon NTFS16Mac读写外置移动硬盘专业工具

Paragon NTFS for Mac16是一款非常不错的Mac读写工具&#xff0c;解决了大部分Mac电脑用户无法读取移动硬盘的困扰&#xff0c;Paragon NTFS for 16版一直是Mac OS平台上最受欢迎的NTFS硬盘格式读取工具&#xff0c;有了NTFS for Mac &#xff0c;安装了双系统的Mac用户可以在O…

从Android面试题目溯源-1、创建线程有那几种方式

概念 程序执行流的最小单位&#xff0c;处理器调度调度和分派的基本单位。 如何理解这个概念 如下图&#xff0c;可以简单类比吉他&#xff0c;六根弦代表六个线程&#xff0c;每个线程独立且单独运行&#xff0c;且持有上一个音的状态&#xff0c;每根手指可类比为一个CPU的…

C#开发的OpenRA游戏之属性SelectionDecorations(12)

C#开发的OpenRA游戏之属性SelectionDecorations(12) 前面分析了显示选择框的指示器类SelectionBoxAnnotationRenderable,它的作用就是画一个四个角的方角。 这个类是在属性SelectionDecorations里调用的,如下: protected override IEnumerable<IRenderable> Rende…

企业如何选择安全又快速的大文件传输平台

在现代信息化社会&#xff0c;数据已经成为各个行业的重要资源&#xff0c;而数据的传输和交换则是数据价值的体现。在很多场合&#xff0c;企业需要传输或接收大文件&#xff0c;例如设计图纸、视频素材、软件开发包、数据库备份等。这些文件的大小通常在几百兆字节到几十个字…

交流负载的原理与应用

交流负载是指能够消耗交流电能的设备或系统&#xff0c;在电力系统中&#xff0c;交流负载是不可或缺的一部分&#xff0c;它们将电能转化为其他形式的能量&#xff0c;以满足人们生产和生活的需求。交流负载的原理与应用涉及到许多方面&#xff0c;包括电气工程、电子技术、自…

数据库系统概述之国产数据库

当今世界&#xff0c;数据已成为重要的生产要素&#xff0c;数据库管理系统更是广泛应用于信息化行业各领域&#xff0c;国内数据库产业能否健康可持续的发展&#xff0c;在很大程度上影响着国民经济发展和网络空间安全。 当前&#xff0c;国产数据库行业竞争非常激烈&#xf…

Docker 安装kafka 并创建topic 进行消息通信

Apache Kafka是一个分布式流处理平台&#xff0c;用于构建高性能、可扩展的实时数据流应用程序。本文将介绍如何使用Docker容器化技术来安装和配置Apache Kafka。 一、使用镜像安装 1、kafka安装必须先安装Zookpper 2、下载镜像 docker pull wurstmeister/kafka 3、查看下载…

万户协同办公平台ezoffice SendFileCheckTemplateEdit.jsp接口存在SQL注入漏洞 附POC

@[toc] 万户协同办公平台ezoffice SendFileCheckTemplateEdit.jsp接口存在SQL注入漏洞 附POC 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文…

Leetcode—1670.设计前中后队列【中等】

2023每日刷题&#xff08;四十三&#xff09; Leetcode—1670.设计前中后队列 实现代码 erase(iterator position)在删除vector中的元素后&#xff0c;会将该元素的后面所有元素都往前挪一位。因此&#xff0c;原先的迭代器指向的元素就不是原来那个了&#xff0c;而是它的后…

Phpstudy v8.0/8.1添加 php-7.4.9

1、官网下载最新的php版本 打开Windows版的官网下载&#xff0c;地址&#xff1a;PHP For Windows: Binaries and sources Releases 页面上有不同的PHP版本&#xff0c;这里我们下载的是64位nts版的PHP7.4.9&#xff0c;php-7.4.9-nts-Win32-vc15-x64.zip。 2、解压下载的文…

推荐一款好用的BMP转PNG工具BMP2PNG

推荐一款好用的BMP转PNG工具BMP2PNG 自己写的一个BMP转PNG工具BMP2PNG 写这个工具是因为要使用传奇的部分素材在COCOS2DX使用&#xff0c; 但是COCOS2DX不支持BMP 如果直接将BMP转换到PNG的话&#xff0c;网上找到的工具都不支持透明色转换。难道要用PS一个一个抠图吗&#xf…

网络聊天室项目

服务器端 #include <myhd.h>//传输结构体 struct cli {char type; // L/C/Qchar name[20];char text[128]; }; int main(int argc, const char *argv[]) {if(argc!3){printf("请输入ip地址和端口号\n");return -1;}//1、创建用于通信的套接字文件描述符in…

Kubernetes Dashboard 涉及的一些常规技巧

Kubernetes Dashboard 提供了一个GUI形式的K8S集群管理工具&#xff0c;通过它我们能很容易的观察到集群资源消耗情况、服务器运行状态以及针对Pod的相关观察与操作&#xff1b; Dashboard 的相关配置 Dashboard 提供了通过配置启动命令行参数来控制其相关行为的能力&#xf…

Docker—共享应用程序

现在您已经构建了一个映像&#xff0c;可以共享它。要共享Docker映像&#xff0c;您必须使用Docker注册表。默认注册表是Docker Hub&#xff0c;是您使用的所有图像的来源。 Docker ID&#xff08;Docker标识&#xff09; Docker ID允许您访问Docker Hub&#xff0c;这是世界上…

Hive安装与配置

你需要掌握&#xff1a; 1.Hive的基本安装&#xff1b; 2.Mysql的安装与设置&#xff1b; 3.Hive 的配置。 注意&#xff1a;Hive的安装与配置建立在Hadoop已安装配置好的情况下。 hadopp安装与配置 Hive 的基本安装 从 官网 下载Hive二进制包&#xff0c;下载好放在/op…

Linux系统---环境变量+内核进程调度队列(选学)

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C/C》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、环境变量 1.基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数&#xff0c;如: 我们在编写CI/…

卓越进行时 | 西安交通大学校友莅临赛宁网安参观考察

近日&#xff0c;为了深入贯彻网络安全强国战略建设&#xff0c;积极发挥网络安全企业的先进作用&#xff0c;推动校企合作与协作共赢。西安交通大学领导携校友会来到赛宁网安网络安全卓越中心进行参观考察&#xff0c;为进一步的校企合作和产业孵化奠定基础。 活动期间&#…