目录
1. Maven简介
2. Maven的功能
(1) 项目构建
(2) 依靠管理
[项目依靠]:
[依靠转达]:
[依靠排除]:
3. Maven Helper 插件
(1) 概述
(2)安装
4. Maven 堆栈
(1) 堆栈
(2) 当地堆栈和远程堆栈
[当地堆栈]:
[中央堆栈]:
[私服]:
5. 配置Maven国内源
1. Maven简介
Maven 是一个用于项目管理和构建的主动化工具, 重要用于 Java 项目. 它可以帮助开发者管理项目标构建, 报告和文档.
简单来讲, Maven是一个项目管理工具, 通过pom.xml的文件配置获取jar包, 而不消手动获取.
那我们进行Java开发为什么要学习Maven呢? --> 提高开发效率.
[补充]:
(1) 什么是jar包:
jar包 (Java Archive ("Java存档")) 是一种用于存储Java文件和相关配置文件的文件格式, 它本质上是一种压缩文件, 以.jar为扩展名. jar包的设计目标是方便将Java步伐进行打包, 使得打包后的Java代码更易于管理和摆设.
(2) 什么是pom文件:
pom.xml文件是Maven项目标焦点文件, 全称为Project Object Model (项目对象模型). 它是一个 XML 格式的文件, 用于界说 Maven 项目标基本信息, 构建配置, 依靠关系以及项目所使用的插件等紧张信息. Maven 会根据pom.xml文件中的信息来实行各种项目管理和构建任务.
2. Maven的功能
(1) 项目构建
Maven 提供了标准的, 跨平台的主动化项目构建方式.
当我们开发了一个项目之后, 代码需要经过编译, 测试, 打包, 发布等流程. 每次代码修改之后, 都需要再次履历这些流程. 假如代码反复调试修改, 这个流程就要反复地进行, 十分不方便.
而Maven就给我们提供了⼀套简单的命令来完成.
好比, 我们点击package, 就可以主动完成项目标打包工作:
此时我们检察target文件夹, 其目录下就会多出一个jar包. 这个jar包就是我们刚刚通过package打包创建的.
[补充]:
打包, jar包和war包 是什么?
打包就是把全部的class文件, 全部放到一起, 打成jar包大概war包. jar包和war包都是压缩文件的一种.
- jar包就是把开发人员已经写好的代码进行打包. 打好的jar包可以直接引入到其他项目中, 也可以直接使用这些jar包中的类和属性. 也可以打成可实行jar包, 这样的包就可以通过java -jar命令来实行.
- war包可以理解为是⼀个web项目, 内里包含项目中的全部东西, 通常实用于网站的开发.
(2) 依靠管理
[项目依靠]:
什么是依靠? --> 上面说道, Maven是项目管理工具, 通过pom.xml文件中的配置来获取当前项目运行所需要的jar包. 这里 当前项目运行所需要的jar包 就叫做 依靠.
pom.xml 就是Maven的配置文件, 用来形貌项目标信息, 管理项目标依靠.
依靠配置:
例如: 我们之前在学习JDBC时, 需要手动下载 mysql-connector-java 的包并将其手动添加至项目中. 但是假如我们使用Maven, 只需要在pom.xml中引入 mysql-connector-java 的依靠就可以了.
- <dependencies>
- <!-- 在里面添加依赖坐标-->
- </dependencies>
复制代码 我们需要在pom.xml文件中的 <dependencies> 标签中添加mysql-connector-java的依靠坐标, 格式如下:
- <dependencies>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>8.0.33</version>
- </dependency>
- </dependencies>
复制代码 添加新的jar包之后, 我们需要 (点击刷新按钮) 刷新Maven 以引入新的依靠. 否则无法引入.
刷新之后, 我们就可以在 Maven -- Dependencies 中检察到我们新添加的依靠了:
[依靠转达]:
在早期倒霉用Maven管理依靠的jar包时, 假如某jar包还依靠于其他包, 其他包又依靠于另外的包, 那么我们就需要把全部依靠的包一起导入到项目中, 假如手动操作这个过程会十分麻烦.
但是假如我们使用Maven就会避免上述麻烦的产生. 因为Maven管理的依靠具有转达性: 在导入一个依靠时, 会将这个依靠所依靠的以及和它有转达性的jar包一起导入. 也就是说, 我们只需要在pom.xml文件中添加我们想要的依靠, 那么与之相关的全部依靠就会全部主动导入.
好比, 如上图, 我们在项目A中 通过Maven导入 jarA 时, 会主动导入 jarB 和 jarC.
[依靠排除]:
当前阶段我们添加的依靠并不多, 但是随着项目
越来越复杂, 依靠关系也会变得越来越复杂. 就会产生项目不需要某个已导入依靠的情况, 此时我们可以排除依靠: 即 主动断开依靠的资源.
如上图, 假如项目A不需要 jarB, 就可以通过排除依靠的方式来实现. 排除依靠使用exclusions和exclusion标签, 格式如下:
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>6.0.6</version>
- <!--排除依赖-->
- <exclusions>
- <exclusion>
- <artifactId>spring-jcl</artifactId>
- <groupId>org.springframework</groupId>
- </exclusion>
- </exclusions>
- </dependency>
复制代码
3. Maven Helper 插件
(1) 概述
插件是什么 : 插件(Plugins) 就是对步伐的一些特定场景, 做一些特定的扩展.
Maven Helper 插件的重要功能就是"依靠管理". 包括 依靠分析, 冲突检测, 依靠排除 等功能.
(2)安装
我们可以通过: File --> Settings --> Plugins --> 搜索Maven Helper 来安装Maven Helper 插件.
安装好之后, 我们打开pom.xml文件, 会发现下面多出来一栏(Dependency Analyzer).
在这里我们就可以检察包和包之间的依靠关系, 冲突关系, 以及排除一些依靠.
4. Maven 堆栈
(1) 堆栈
Maven通过简单的几行代码就能一个jar包导入进项目中. 那么Maven是怎样做到的呢?
- <dependencies>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>8.0.33</version>
- </dependency>
- </dependencies>
复制代码 如上述代码, 这快代码我们称之为 mysql-connector-java 包的"坐标". 我们知道, 在数学的坐标系中, 某点的坐标是唯一的. 同样地, 在Maven中, 每个jar包的坐标也是唯一的.
Maven中, jar包由 groupId, artifactId, version 三者共同决定, 缺一不可. 也就是说: 这三者共同构成了某jar包的坐标.
当我们在pom.xml文件中配置好依靠之后, 点击刷新, Maven 就会根据我们写的坐标到堆栈中去寻找相应的jar包并下载下来, 导入到项目中.
jar包下载的地方就叫做"堆栈" 堆栈本质上就是一个目录(文件夹), 这个文件夹中存放着我们开发所需要的全部依靠.
(2) 当地堆栈和远程堆栈
Maven 堆栈可以分为两大类: 当地堆栈和远程堆栈. 远程堆栈又可以分为: 中央堆栈, 私服, 其他公共库 等.
[当地堆栈]:
当地堆栈就是我们自己的计算机上用来存储jar包的一个目录. 当我们在项目中导入一个jar包时, 会先查找当地堆栈是否有这个jar包: 假如有, 直接导入; 假如没有, 再去远程堆栈中下载相应的jar包.
我们可以通过File --> Setting --> Maven --> Local respository 来检察当地堆栈的地址.
打开该目录, 我们可以看到哟许多的文件. (这个目录一开始是空的, 随着Maven的使用, 文件会越来越多)
[中央堆栈]:
中央堆栈是Maven中内置的一个远程堆栈地址. 中央堆栈服务于整个互联网, 环球唯一, 由Maven团队维护.
Maven中央堆栈地址: https://repo1.maven.org/maven2/
我们也可以通过Maven官网来访问中央堆栈: https://mvnrepository.com/ 我们查找jar包坐标就是通过这个地址来查找.
查找jar包坐标:
点击版本号, 进去就能检察到jar包的坐标了.
[私服]:
私服 即私有服务器, 一样平常是由某公司或某团队搭建的堆栈.
在有了私服之后, Maven下载依靠的次序又发生了变化:
(1) 先从当地堆栈获取. 假如当地堆栈存在该资源, 直接导入.
(2) 假如当地堆栈不存在, 再从私服获取. 假如私服存在该资源, 直接导入.
(3) 假如私服中也不存在, 再从中央堆栈下载. 假如中央堆栈存在该资源, 直接导入.
(4) 假如中央堆栈也不存在该资源, 就会报错.
5. 配置Maven国内源
因为中央堆栈在国外, 以是下载起来会比较慢, 以是我们选择借助国内一些公开的远程堆栈来下载资源. 国内常见的公开远程堆栈有: 阿里云, 华为云, 腾讯云 等. 参考: Maven 镜像地址大全 - 知乎.
我们以阿里云堆栈为例. 打开settings.xml, 在mirrors节点中, 添加如下代码:
- <mirror>
- <id>aliyunmaven</id>
- <mirrorOf>*</mirrorOf>
- <name>阿里云公共仓库</name>
- <url>https://maven.aliyun.com/repository/public</url>
- </mirror>
复制代码
这样就给当前项目标配置好国内源了.
但是别忘了也要给新项目配置哈.
好了, 完成以上操作, 我们就能流畅地使用Maven管理项目了~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |