中国建设银行钓鱼网站,wordpress禁止下载文件,wordpress 即时通讯,网站建设及网络营销Maven 是一个项目管理工具#xff0c;基于 POM#xff08;Project Object Model#xff0c;项目对象模型#xff09;的概念#xff0c;Maven 可以通过一小段描述信息来管理项目的构建#xff0c;报告和文档的项目管理工具软件
大白话#xff1a;Maven 是一个项目管理工…Maven 是一个项目管理工具基于 POMProject Object Model项目对象模型的概念Maven 可以通过一小段描述信息来管理项目的构建报告和文档的项目管理工具软件
大白话Maven 是一个项目管理工具通过 pom.xml 文件的配置获取 jar 包而不用手动去添加 jar 包
项目开发编译、打包jar 包、运行。 当
什么是 Maven
Maven 是一个项目管理工具基于 POMProject Object Model项目对象模型的概念Maven 可以通过一小段描述信息来管理项目的构建报告和文档的项目管理工具软件
大白话Maven 是一个项目管理工具通过 pom. xml 文件的配置获取 jar 包而不用手动去添加 jar 包 Maven 简单高效可以提高我们的开发效率减少我们的开发 bug。Maven 提供的功能非常多在这主要体现两方面 项目构建管理依赖 创建一个 Maven 项目
IDEA 本身已经继承了 Maven我们可以直接使用无需安装 以下截图的 IDEA 版本为2024.1.2不同版本的 IDEA 界面展示会有不同 点击 create就创建好了一个 Maven 项目 Maven 核心功能
接下来我们结合项目介绍 Maven 在项目开发中的作用
项目构建管理依赖
项目构建
Maven 提供了标准的跨平台Linux、Windows、MacOS 等的自动化项目构建方式
当我们开发了一个项目之后代码需要经过编译、测试、打包、发布等流程。每次代码的修改都需要经过这些流程如果代码反复调试修改这个流程就需要反复进行就显得麻烦。而 Maven 给我们提供了一套简单的命令阿里完成项目的构建 比如点击“package”就可以完成项目的打包操作 打包就是把所有的 class 文件全部放在一起打成 jar 包或者 war 包 jar 和 war 包是一种压缩文件jar 包就是把开发人员已经写好的一些代码进行打包。打包好的 jar 包就可以进入到其他项目中也可以直接使用这些 jar 包中的类和属性另外也可以打成可执行 jar 包这样的包就可以通过 java -jar 命令来执行war 包可以理解为是一个 web 项目里面是项目的所有东西通常用于网站 依赖管理
上面说到Maven 是一个项目管理工具通过 pom.xml 文件的配置获取 jar 包而不用手动去添加 jar 包获取的 jar 包其实就是依赖 pom.xml 就是 Maven 的配置文件用以描述项目的各种信息 依赖配置
依赖指当前项目运行时所需要的 jar 包 比如 JDBC我们需要手动下载 mysql-connector-java 的包并且添加到项目中 如果使用 Maven我们只需要在 pomxml 中引入 mysql-connector-java 的依赖就可以了
dependencies !--里面放置项目的依赖坐标可以为多个--
/dependencies在 pom 文件 dependencies 标签内添加依赖坐标
dependencies groupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.30/version
/dependencies点击刷新按钮引入新加的依赖 jar 包 后续有添加新的 jar 包或者修改 jar 包的版本都需要通过该方式在项目中添加依赖 刷新完之后就可以在项目中看到新加入的 jar 包
依赖传递
早期我们没有使用 Maven 时向项目中添加依赖的 jar 包需要把所有的 jar 包都复制到项目工程下。
比如A 依赖 BB 依赖 C那么 A 项目引入 B 的同时也需要引入 C如果我们手动管理这个依赖这个过程就会比较麻烦我们需要知道每个库都依赖哪些库以及这些依赖之间的版本是如何关联的 比如我们要吃火锅需要有锅、调料、食材以及确定什么样的锅什么样的食材比如去医院看病需要带上以往的病例检查结果、处方等并且要确定带的资料是正确的。如果日期错了或者患者错了带少了就需要回去重新拿 但如果是使用 Maven 的话就可以避免管理所需依赖的关系。我们只需要在 pom 文件中定义直接依赖就可以了。由于 Maven 的依赖具有传递性所以会自动把所依赖的其他 jar 包也一起导入 比如吃火锅现在我们点一个海底捞外卖直接就把所有食材都送过来了包括什么锅、什么食材比如去医院看病借助“互联网”实现了信息互享只需要带上身份证以往的病历和检查结果就都可以看到了 Maven 会把在引入一个依赖的时候会一起把实现这个功能所需要的依赖也一起自动引入
这里引入 mysql进行打包protobuf 就是连带的依赖需要一起引入
dependencies dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version8.0.29/version /dependency
/dependencies依赖排除 项目 A 依赖一个项目 B 和一个 jar 包 A
jar 包 A 依赖 jar 包 B、jar 包 C项目 B 里面是各种依赖其中也用到了 jar 包 C
但是两边都需要引入 jar 包 C此时我们在哪边进行引入 一般 jar 包都是向下兼容高版本可以兼容低版本 最短路径法 看项目 A 到两个 jar 包 C 放入路径哪个更短就用哪个
左边的是三步右边的是两步 所以就在右边引入 jar 包
而右边的 jar 包 C 版本比左边的低无法兼容左边的高版本 jar 包 C。此时就需要将右边的 jar 包 C 从 1.0 升级成 2.0此时就可以进行指定依赖
首先将 1.0 的 jar 包 C 给排除掉此时项目中就只剩下 2.0 的 jar 包 C 了我们在根据路径找 jar 包 C 的时候就只能找到 2.0 的 jar 包 C 了 虽然在上面的图片中看起来是有结构的谁依赖谁。但是放在项目中都是平铺直叙的都是放在一起用的 依赖排除
enclusions 就是排除一些依赖不会默认把相关的所有依赖都进行引入
上面引入依赖的时候主依赖和相关依赖都是从网上下载的。需要排除一些依赖就将网上的地址给出来
Maven Help
当项⽬⽐较复杂时我们就会有 Jar 包冲突的问题这时候就需要去解决依赖冲突。解决冲突之前需要先找到冲突我们可以使⽤ Maven Help 插件来观察包和包之间的依赖关系
如果需要排除某个依赖就右键点击选择 Exclude
依赖的坐标
这个代码我们称之为“坐标”也就是唯一的
在 Maven 中根据 groupId、artfactId、version 的配置来唯一识别一个 jar 包缺一不可。当我们在 pom 文件中配置完依赖之后点击刷新, Maven 就会根据坐标的位置去仓库里寻找 jar 包并把它下载下来添加到项目中这个 jar 包下载的地方就叫仓库
仓库用来存储资源管理各种 jar 包
dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version8.0.30/version
/dependencyMaven 仓库
Maven 仓库分为两种 本地仓库 仓库在你本机电脑上是本地仓库。其他都是远程仓库 远程仓库
远程仓库
中央仓库
全球唯一地址为 https://repo1.maven.org/maven2/springframework/
里面东西太多了不好找。可以在这里面进行快速查找 https://mvnrepository.com
私有服务器其他公共的
Maven 版本选择哪个
没漏洞的选择次新版本选择人多的 不严格推荐是基于大家不知道用哪个的情况对这个 jar 包不熟的情况 jar 包下载路径
先去本地仓库查找如果没有就去中央仓库查如果中央仓库没有就下载失败报错如果中央仓库有jar 包就从中央仓库下载到本地仓库项目从本地仓库中获取 本地仓库原来是空的随着使用里面的包越来越多从中央仓库下载过来的
私有服务器
中央仓库里面的包是全世界的都可以看到而有一些不想公开的 jar 包就放在私服中私有服务器
有账号和密码公司里面可以用 有权限的人一起使用的如果遇到私服中不存在的 jar 包第一个人下载之后后面的人就从私服中可以获取到了无需再下载了
其他公共服务器
阿里云华为云
因为中央仓库在国外所以下载起来会⽐较慢所以咱们选择借助国内⼀些公开的远程仓库来下载资源
阿里云就相当于是把中央仓库弄了一个镜像放在了国内并公开给人用 如果路径中有中文修改一下 Maven 本地仓库路径