当前位置: 首页 > news >正文

【Maven】——基础入门,插件安装、配置和简单使用,Maven如何设置国内源

 8e19eee2be5648b78d93fbff2488137b.png

阿华代码,不是逆风,就是我疯

你们的点赞收藏是我前进最大的动力!!

希望本文内容能够帮助到你!!

目录

引入:

一:Maven插件的安装

1:环境准备

2:创建项目

二:Maven的核心功能

1:项目构建

2:依赖管理

(1)依赖配置

(2)添加依赖坐标

(3)依赖传递

(4)依赖排除

(5)依赖调解

 三:Haven Help插件

1:插件下载

2:查看插件依赖关系

3:排除依赖

四:Maven仓库

1:仓库

(1)本地仓库

(2)中央仓库

2:Maven获取资源优先级

五:Maven文件设置国内源

1:配置当前项目setting

2:配置国内源

3:设置新项目的setting


引入:

Apache(谐音阿帕奇)——非常大的一个开源社区(很多项目为捐赠)

本篇文章学习的Maven 就是Apache旗下的一个项目

Maven是一个项目管理工具,基于POM(Project Object Model,项⽬对象模型)的概念,Maven可以通过⼀⼩段描述信息来管理项⽬的构建,报告和⽂档的项⽬管理⼯具软件。

一:Maven插件的安装

1:环境准备

⾃检Idea版本:
社区版: 2021.1 -2022.1.4
专业版: ⽆要求
如果个⼈电脑安装的idea不在这个范围, 需要卸载重新安装

2:创建项目

二:Maven的核心功能

1:项目构建

Maven 提供了标准的,跨平台(Linux, Windows, MacOS等)的⾃动化项⽬构建⽅式
当我们开发了⼀个项⽬之后, 代码需要经过编译, 测试, 打包, 发布等流程, 每次代码的修改, 都需要经过这些流程, 如果代码反复调试修改, 这个流程就需要反复进⾏, 就显得特别⿇烦,, ⽽Maven 给我们提供了 ⼀套简单的命令来完成项⽬的构建.
打包就是把所有的class⽂件, 全部放在⼀起, 打成jar包或者war包
jar包和war包都是⼀种压缩⽂件, jar包就是把开发⼈员已经写好的⼀些代码进⾏打包. 打好的jar包就可以引⼊到其他项⽬中, 也可以直 接使⽤这些jar包中的类和属性. 另外也可以打成可执⾏jar包, 这样的包就可以通过java -jar命令来执

2:依赖管理

上⾯说到, Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包
获取的jar包, 其实就是依赖

(1)依赖配置

指当前项⽬运⾏所需要的jar包.
⽐如前⾯学习JDBC时, 我们需要⼿动下载mysql-connector-java的包.并且添加到项⽬中

(2)添加依赖坐标

如果使⽤Maven, 我们只需要在pom.xml中引⼊mysql-connector-java的依赖就可以了

 <dependencies><!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j --><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.3.0</version></dependency></dependencies>

点击刷新按钮, 引⼊新加⼊的依赖jar包

刷新完之后, 就可以在项⽬中看到新加⼊的jar包

(3)依赖传递

早期我们没有使⽤maven时, 向项⽬中添加依赖的jar包,需要把所有的jar包都复制到项⽬⼯程下.
⽐如 A 依赖B, B依赖C, 那么 A项⽬引⼊B 的同时, 也需要引⼊C, 如果我们⼿动管理这个依赖, 这个过程 就会⽐较⿇烦, 我们需要知道每个库都依赖哪些库, 以及这些依赖之间的版本是如何关联的
但使⽤maven的话, 就可以避免管理所需依赖的关系。我们只需要在pom⽂件中, 定义直接依赖就可以 了, 由于maven的依赖具有传递性,所以会⾃动把所依赖的其他jar包也⼀起导⼊
如上图, 项⽬A 通过Maven 引⼊ Jar A 时, 会⾃动引⼊ Jar B 和Jar C.
Jar A 和项⽬B就是项⽬A的直接依赖.
Jar B, Jar C是间接依赖

(4)依赖排除

当前阶段我们需要依赖的库并不多, 但随着项⽬的越来越复杂, 库之间的依赖关系也会变得越来越复杂.
如上图中, 如果项⽬A不需要Jar B,也可以通过排除依赖的⽅式来实现
        <dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.3.0</version><!--排除依赖--><exclusions><exclusion><artifactId>spring-jcl</artifactId><groupId>org.springframework</groupId></exclusion></exclusions></dependency>

(5)依赖调解

当项⽬中的依赖存在依赖冲突时, 例如 存在这样的依赖:
A->B->C->X(1.0)
A->D->X(2.0)
Maven会采⽤最短路径优先的原则去选择依赖,这⾥2的依赖路径更短,所以会选择X(2.0), 当然我们
也可以选择指定某个依赖的版本
当然也可以指定X的版本

 三:Haven Help插件

当项⽬⽐较复杂时, 我们就会有Jar包冲突的问题, 这时候就需要去解决依赖冲突. 解决冲突之前, 需要先
找到冲突, 我们可以使⽤Maven Help插件来观察包和包之间的依赖关系

1:插件下载

2:查看插件依赖关系

打开pom⽂件, 可以看到Jar包之间的依赖关系

3:排除依赖

四:Maven仓库

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version>
</dependency>
我们通过短短⼏⾏代码, 就把依赖jar包放在了项⽬⾥,
这个代码, 我们称之为 "坐标", 也就是唯⼀的.
在Maven中, 根据 groupId、artifactId、version 的配置, 来唯⼀识别⼀个 jar 包, 缺⼀不可.
当我们在pom⽂件中配置完依赖之后, 点击刷新, Maven会根据坐标的配置, 去仓库⾥寻找Jar包, 并把他 下载下来, 添加到项⽬中. 这个Jar包下载的地⽅就称为仓库

1:仓库

⽤于存储资源,管理各种jar包,本质就是⼀个⽬录(⽂件夹),这个⽬录被⽤来存储开发中所有依赖(jar包, 插件等)

(1)本地仓库

本地仓库: ⾃⼰计算机上的⼀个⽬录(⽤来存储jar包)
当项⽬中引⼊对应依赖jar包后,⾸先会查找本地仓库中是否有对应的jar包
如果有,则在项⽬直接引⽤
如果没有,则去中央仓库中下载对应的jar包到本地仓库
本地仓库地址可以通过Maven配置查看:
File -> Settings

本地仓库路径

(2)中央仓库

maven 软件中内置⼀个远程仓库地址,就是中央仓库,服务于整个互联⽹. 由 Maven 团队
维护,全球唯⼀
我们可以把⾃⼰写好的Jar包上传到中央仓库(具备⼀定的要求), 也可以从中央仓库下载Jar包

仓库地址:

Maven Repository: Search/Browse/Explore

也可以通过这个网站来查询下载

Maven Repository: Search/Browse/Explore

2:Maven获取资源优先级

①  先从本地仓库获取, 本地仓库存在, 则直接返回
②  如果本地仓库没有, 就从私服请求, 私服存在该资源, 就直接返回
③  如果私服上不存在该资源,则从中央仓库下载, 中央仓库不存在, 就报错了...
④  如果中央仓库中存在, 就先缓存在私服上之后,再缓存到本地仓库⾥, 再为Maven的下载请求提供服务

五:Maven文件设置国内源

因为中央仓库在国外, 所以下载起来会⽐较慢, 所以咱们选择借助国内⼀些公开的远程仓库来下载资源
接下来介绍, 如何设置国内源

1:配置当前项目setting

2:配置国内源

Maven 仓库默认在国外 https://mvnrepository.com/ , 国内使⽤时会⽐较慢,我们可以更换为阿⾥云 的仓库
也可以选择别的仓库, 参考: Maven 镜像地址大全 - 知乎
打开settings.xml, 在 mirrors 节点上,添加内容如下:
<mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf><name>阿⾥云公共仓库</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url></mirror>

3:设置新项目的setting

 新项目的setting也要修改

http://www.lryc.cn/news/477225.html

相关文章:

  • AIGC时代LaTeX排版的应用、技巧与未来展望
  • 二叉树的深搜
  • JUC笔记之ReentrantLock
  • 【含文档】基于ssm+jsp的图书管理系统(含源码+数据库+lw)
  • pytorch知识蒸馏测试
  • mutable用法
  • SQL语言基础
  • 在USB电源测试中如何降低测试成本?-纳米软件
  • springboot - 定时任务
  • 一篇文章理解CSS垂直布局方法
  • SpringBoot day 1105
  • MySQL 完整教程:从入门到精通
  • 【贝叶斯公式】贝叶斯公式、贝叶斯定理、贝叶斯因子,似然比
  • [libos源码学习 1] Liboc协程生产者消费者举例
  • Python OpenCV 图像改变
  • k8s按需创建 PV和创建与使用 PVC
  • 揭秘云计算 | 2、业务需求推动IT发展
  • 【系统面试篇】进程与线程类(2)(笔记)——进程调度、中断、异常、用户态、核心态
  • 基于MySQL的企业专利数据高效查询与统计实现
  • 热成像手机VS传统热成像仪:AORO A23为何更胜一筹?
  • Spring IoC——依赖注入
  • Linux 中,flock 对文件加锁
  • CentOS下载ISO镜像的方法
  • Node.js 入门指南:从零开始构建全栈应用
  • MYSQL 真实高并发下的死锁
  • Zookeeper 简介 | 特点 | 数据存储
  • 设计模式之结构型模式---装饰器模式
  • Android Pair
  • 华为荣耀曲面屏手机下面空白部分设置颜色的方法
  • 《C#语法一篇通》,有20万字,需8MB字节,宜48小时阅读,没准会继续完善