Maven基础简介

在这里插入图片描述

作者简介: zoro-1,目前大二,正在学习Java,数据结构,spring等
作者主页: zoro-1的主页
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖

Maven简介

Maven是什么

Maven是一个项目管理工具,用于构建和管理Java项目。它可以自动下载项目依赖的第三方库,并将它们添加到项目的构建路径中。Maven使用XML格式的配置文件来定义项目的依赖关系、构建过程和发布方式。它通过插件系统提供了丰富的功能,如编译、测试、打包、部署等。Maven还提供了一个标准的项目结构和约定,使得多人协作和持续集成更加方便。

Maven可以为我们做什么

Maven是一个Java项目构建工具,它可以帮助我们自动化构建、测试和部署Java项目。下面是Maven可以为我们做的一些事情:

  1. 依赖管理:Maven可以管理项目的依赖库,并自动下载和导入所需的依赖。它可以解决依赖冲突的问题,确保项目构建所需的所有依赖都可用。

  2. 项目构建:Maven提供了一套规范的项目结构和构建生命周期,可以帮助我们快速搭建和构建Java项目。它可以自动编译代码、运行测试、打包应用程序等。

  3. 测试支持:Maven可以集成各种测试框架,如JUnit、TestNG等,并提供了丰富的插件和配置选项来帮助我们编写和运行测试。

  4. 文档生成:Maven可以生成项目的文档,包括JavaDoc和项目报告。这些文档可以帮助我们了解项目的结构和使用方法。

  5. 项目部署:Maven可以帮助我们自动化部署项目。它可以将项目打包成可执行的文件或部署到服务器上。

Maven管理的项目如何下载依赖

第一种:通过远程仓库下载

Maven内置了一个远程仓库(中央仓库)(全球唯一),(简单来说就是一个资源存储仓库,将所有依赖按照一定的),通过配置pom.xml文件能够自动从这个仓库下载依赖。

在这里插入图片描述

第二种:通过本地仓库下载

我们idea只要配置过Maven,创建一个Maven项目,就会存在一个本地仓库,每次下载依赖的顺序是先从本地仓库寻找,如果没有就向远程仓库下载到本地仓库,之后再下载这个依赖就可以从本地仓库中找到,缩减了下载时间。

在这里插入图片描述

第三种:通过私服下载(企业常用)

什么情况下会通过私服下载,就是企业中自己研发的依赖,涉及商业机密,不想被别的企业看见,通常会有一个私有服务器专门存储这些依赖,得有账户密码,才能登录进去下载。

在这里插入图片描述

如何解决依赖冲突问题

通过maven导入的依赖,不仅会导入依赖本身,还会导入依赖所需要的依赖,,这样就有可能导致导入的依赖已经导进去了,很可能相同的依赖版本还不一样,那这时候我们怎么去处理呢,就要用到了一个插件,将我们所有导进去的依赖进行梳理标识哪些依赖是冲突的然后可以让我们看见然后删除不合适的留下合适的,一般删除低版本的,留下高版本的,因为高版本兼容低版本的功能
在这里插入图片描述
在这里插入图片描述
下载后就显示了一个Dependency Anaiyzer,他上面三个按钮分别是将冲突依赖显示出来,将依赖用列表显示出来,将依赖用树形结构显示出来,右键依赖点击exclude就可以删除

如何配置Maven项目

点击File->settings->在搜索框搜索maven

在这里插入图片描述

Maven home path就是下载的Maven地址
User settings file就是Maven的配置文件
Local repository就是maven的本地仓库地址

在这里插入图片描述

点击后面的文件夹,都是可以修改地址,建议放在一个空间比较充裕的盘下,并且需要将路径都设置为英文(防止报错),然后将Maven的配置文件路径复制下来搜索找到文件,然后点开将下面的远程仓库改成阿里云,因为没改之前的远程仓库是国外的,下载速度慢,但是我们国内也有很多企业开源了一些镜像仓库。

在这里插入图片描述

<mirror><id>aliMaven</id><name>aliyun maven</name><url>https://maven.aliyun.com/nexus/content/groups/public</url><mirrorOf>central</mirrorOf></mirror></mirrors>
                        今天的分享到这里就结束了,谢谢大家的支持

在这里插入图片描述

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

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

相关文章

Qt5.14.2揭秘Qt与SSL/TLS的完美邂逅:打造坚不可摧的网络安全防线

引言&#xff1a; 在数字化时代&#xff0c;数据安全是每个开发者和用户都不可忽视的问题。Qt&#xff0c;作为一个强大的跨平台开发框架&#xff0c;为我们提供了丰富的网络功能&#xff0c;其中就包括了对SSL/TLS加密通信的支持。本文将带你深入了解如何在Qt中实现SSL证书认证…

JVM的工作流程

目录 1.JVM 简介 2.JVM 执行流程 3. JVM 运行时数据区 3.1 堆&#xff08;线程共享&#xff09; 3.3 本地方法栈&#xff08;线程私有&#xff09; 3.4 程序计数器&#xff08;线程私有&#xff09; 3.5 方法区&#xff08;线程共享&#xff09; 4.JVM 类加载 ① 类…

软件测试的就业前景如何?

近年来&#xff0c;进入软件测试的就业人数逐渐增加。现在的社会对软件测试这个职业都有很大的需求。也有很多刚步入社会的年轻人想学习软件测试。那么你知道学习软件测试的的发展前景怎么样吗?看看下面的详细介绍。 关于软件测试行业发展前景问题&#xff0c;是很多准备入行…

c++ 常用的STL

前言 写这篇博客目的是为了记录在刷算法题中使用过的STL&#xff0c;因为有些不太常用的会遗忘。这篇博客只是作为笔记&#xff0c;不是详细的STL&#xff0c;因此只会对常用方法说明&#xff0c;不会详细介绍。此外在后面用到新的STL内容时会再补充。 列队 基础列队 基本列…

【python】time库知识整理

简介 python的time库是python内置库&#xff0c;主要负责处理与时间相关的事务。 获取当前时间 函数作用time()获取当前时间戳ctime()获取字符串形式的时间gmtime()调用内部方法&#xff0c;赋予属性&#xff0c;能够被程序调用执行 time返回的是时间戳 ctime是返回的我们…

MPU6050详解

文章目录 前言MPU6050简介MPU6050参数 硬件电路MPU6050框图电荷泵的原理 内部时钟生成需要使用的寄存器&#xff08;常用&#xff09;采样率划分器配置寄存器陀螺仪配置寄存器加速度计配置寄存器加速度计测量寄存器温度测量寄存器陀螺仪测量寄存器电源管理1寄存器电源管理2寄存…

Tomcat实现java博客项目、状态页及常见配置介绍

目录 一、自建博客 1. 项目背景 2. 操作示例 二、状态页 1. 概述 2. server status 信息状态页 3. manager app 项目管理状态页 4. host manger 虚拟主机管理状态页 三、常见配置 1. 端口8005/tcp安全配置管理 2. tomcat端口号 3. 虚拟主机设置 4. Context配置 一…

R语言自定义颜色

一、创建颜色梯度&#xff08;渐变色&#xff09; 在绘热图时&#xff0c;需要将数值映射到不同的颜色上&#xff0c;这时就需要一系列的颜色梯度colorRampPalette 函数支持自定义的创建一系列的颜色梯度。 代码示例&#xff1a; library(RColorBrewer)x <- colorRampPal…

【kubernetes】关于k8s集群的pod控制器

目录 一、deployment控制器 二、statefulset控制器 1、验证数据可以持久化 2、验证删除后名称不会改变&#xff0c;数据还会一直存在 3、验证扩容的创建过程是升序串行执行&#xff0c;并且自动创建pv 4、验证滚动更新的时候也是升序执行&#xff0c;数据持久化还在 5、验…

【排序算法】深入理解归并排序算法:从原理到实现

目录 1. 引言 2. 归并排序算法原理 3. 归并排序的时间复杂度分析 4. 归并排序的应用场景 5. 归并排序的优缺点分析 5.1 优点&#xff1a; 5.2 缺点&#xff1a; 6. Java、JavaScript 和 Python 实现归并排序算法 6.1 Java 实现&#xff1a; 6.2 JavaScript 实现&…

A5自媒体wordpress主题模板

一个简洁的wordpress个人博客主题&#xff0c;适合做个人博客&#xff0c;SEO优化效果挺不错的。 https://www.wpniu.com/themes/204.html

什么是ETL?什么是ELT?怎么区分它们使用场景

在大数据处理的领域中&#xff0c;ETL和ELT是两个经常被数据工程师提到的工具&#xff0c;而有很多数据工程师对这两种工具的区别和使用和定位有一定的模糊&#xff0c;其实它们分别代表了两种不同的数据集成方法。尽管这两种方法看起来都是从源系统提取数据&#xff0c;转换数…

2024AI在医疗领域中的辅助趋势与现有进展

2024 年 AI 辅助研发趋势随着人工智能技术的持续发展与突破&#xff0c;2024年AI辅助研发正成为科技界和工业界瞩目的焦点。从医药研发到汽车设计&#xff0c;从软件开发到材料科学&#xff0c;AI正逐渐渗透到研发的各个环节&#xff0c;变革着传统的研发模式。在这一背景下&am…

rabbitmq 基本总结

rabbitmq 的基本概念 vhost、broker、producer、 consumer、 exchange、 queue、 routing key rabbitmq 常用的队列类型&#xff0c;工作队列&#xff08;简单队列&#xff09;,pub/sub, routing key&#xff0c; topic 模式 <dependency><groupId>com.rabbitmq&l…

启动项目报502怎么处理呢?

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精…

蓝桥杯练习系统(算法训练)ALGO-982 最小距离

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 最小距离 问题描述 数轴上有n个数字&#xff0c;求最近的两个数&#xff0c;即min(abs(x-y)) 输入格式 第一行包含一个整数n。   …

Redis的Lua脚本

Redis提供了Lua脚本功能&#xff0c;在一个脚本中编写多条Redis命令&#xff0c;确保多条redis命令执行时的原子性。&#xff08;让判断线程标识和释放锁原子执行&#xff09; 1.下载lua插件 2.创建lua文件 3.调用lua脚本 public void unlock() {//调用lua脚本原子性的判断线…

CSS中元素的层叠顺序

层叠顺序&#xff0c;英文称作 stacking order&#xff0c;表示元素发生层叠时有着特定的垂直显示顺序。下面是盒模型的层叠规则&#xff1a; 对于上图&#xff0c;由上到下分别是&#xff1a; &#xff08;1&#xff09;背景和边框&#xff1a;建立当前层叠上下文元素的背景…

【Qt】四种绘图设备详细使用

绘图设备有4个: **绘图设备是指继承QPainterDevice的子类————**QPixmap QImage QPicture QBitmap(黑白图片) QBitmap——父类QPixmapQPixmap图片类&#xff0c;主要用来显示&#xff0c;它针对于显示器显示做了特殊优化&#xff0c;依赖于平台的&#xff0c;只能在主线程…

Linux系统——web服务拓展练习

目录 一、实验环境搭建 1. Centos 7-5——Client 2. Centos 7-1——网关服务器 3. Centos 7-2——Web1 4. Centos 7-3——Web2 5. Centos 7-4——Nginx 二、在Nginx服务器上搭建LNMP服务&#xff0c;并且能够对外提供Discuz论坛服务&#xff1b;在Web1、Web2服务器上搭建…