【Java】Maven中依赖文件的详细解释
Maven的简介
Maven是什么?
简单来说Maven是Java 中的一种项目管理,项目构建,依赖管理的工具
为什么使用Maven?
因为Maven让我们的项目带来更多的方便,我们把所有的依赖放在Maven的依赖管理文件中(pom),这样maven帮我们管理依赖。
Maven的作用设什么?
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven是一站式的项目的管理软件 主要的功能:项目的创建/jar包管理/项目打包/发布/部署等功能
Maven的有点和缺点
优点:
(1)简化了项目依赖管理
(2)便于项目升级,无论是项目本身升级还是项目使用的依赖升级。
(3)maven有很多插件,便于功能扩展,比如生产站点,自动发布版本
缺点:
(1)maven是一个庞大的构建系统,学习难度大
(2)虽然上手容易,但是一旦出了问题,难于调试。
(3)当依赖很多时,m2eclipse 老是搞得Eclipse很卡。
什么是Maven的坐标?
普通的坐标:
普通的坐标是在平面几何中坐标(x,y)可以标识平面中唯一的一点
Maven坐标:
就是把我们引入依赖的具体地址,把坐标引入到Maven的pom文件后Maven立刻根据坐标帮我们引入java依赖jar包,推荐Maven坐标查询网站:
http://mvnrepository.com/
Maven的坐标基本形式?
<dependency><groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
这个是一个简单的Maven坐标形式
dependency——————创建项目的组织或团体的唯一 Id.可视为公司名
groupId——————创建项目的组织或团体的唯一 Id.可视为公司名
artifactId——————项目的唯一 Id, 可视为项目名 .
version——————产品的版本号
scope——————为jar包作用范围
关于Maven jar包管理机制
Java的编译过程
IDEA中Maven的常用命令
clean ——————清空maven中的target目录…
compile ——————通过命令 maven将.java文件转化为.class文件
install ——————将项目打包部署 将项目动态的在target和本地仓库中进行存储.
项目坐标和jar包的关系
中央仓库
Maven下载的包都在中央仓库中,我们把坐标放到pom文件后,maven在中央仓库中根据坐标找我们需要的依赖,也引入到项目中,下载好的依赖存入到我们的本地仓库中(中央仓库默认配置)
阿里仓库
中央仓库是国外的访问速度相当慢,我们可以配置把依赖的下载地址改成阿里的仓库,中央我们灵活的下载依赖,同样是下载好的依赖存入到本地仓库中(需要手动配置)
本地仓库
本地仓库是我们从中央仓库获知阿里仓库中下载的依赖直接存入到本地仓库中,然后交给项目,下次我们需要同样的依赖后,Maven先找本地仓库中的,如果没有的话,在阿里仓库中下载,如果没配置阿里仓库的话,直接在中央仓库中找然后下载到本地仓库,本地仓库就是一个文件夹而已里面存依赖的
中央仓库如何管理我们的jar包?
通过maven坐标进行有效管理
坐标与本地仓库关系?
1)第三方jar包 一般通过坐标在本地路中进行jar包文件的依赖.如果下载失败,则需要手动删除之后,更新maven重新下载.
2)自己的jar包 当项目打包时会在指定的位置生成.jar包文件
maven中jar包依赖的传递性的原理
说明:
在Maven中 如果A-----依赖-----B,B-----依赖-----C
当在pom.xml文件中添加A jar包时 B/C都会自动的添加依赖
将这种现象称之为叫做maven jar依赖的传递性.
1)--jar包传递性的案例:
2)--如何实现的?
项目通过依赖项进行jar包文件加载时,根据maven规则,会去本地库中查找该jar包文件.之后解析该jar包文件的 .pom.文件 如果该文件中有依赖项,则重复执行上述的过程.直到依赖完成为止结束.
如何保证jar包文件安全性???
SHA1算法说明:
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)
SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数
一个字节8个bit(0|1)
消息摘要说明:
40位16进制数重复的概率是多少?? (2的4次方)40=2^160
SpringBoot相关说明
POM.xml文件说明
历史遗留问题
在之前旧项目中,需要手动的jar包文件.并且格外的注意jar包版本问题.以防版本重复. 但凡涉及到jar包的升级,或多或者都会有版本问题.
parent标签的作用
<parent><groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath/>
</parent>
springboot官方将自身所有用到的jar包的文件进行了统一的管理定义(冲突问题最大程度上进行解决)
防止内部jar包文件冲突.
关于依赖项说明
<dependencies><dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
按照需要的jar包进行依赖,但是不需要指定版本号.因为在父级项目中进行统一的定义.
以上是 【Java】Maven中依赖文件的详细解释 的全部内容, 来源链接: utcz.com/a/102800.html