最近,当发现有些学生正在建立微服务时,他们对POM的管理感到非常困惑,而且他们对Maven的理解没有系统地了解。在微服务项目中提供POM的优雅依赖性管理。
:本文不会介绍最常用标签中更常见的Maven的所有标签,向您介绍给所有人。如果您想知道所有标签,可以查看Maven官方网站
Maven是Apache开源的项目管理工具。它使用项目对象模型(项目对象模型)的概念通过简短的描述信息来管理项目的构建。
因此,您知道POM文件的代表是什么,是项目对象模型。
在Maven之前,我们想声明一个Jar包,必须在库中手动导入。一个或两个可以。当引入外部罐子以数十万个包装包装时,手动方式太麻烦了,并且不容易管理。引入Maven时,我们只需要在POM文件中声明Jar即可自动引入JAR
Maven中有两种类型的仓库:本地仓库和远程仓库
默认的中央遥控仓库地址由Apache提供。由于某些政策原因,外部网络地址在国内访问中一直不稳定。因此,一些大型国内公司(例如Ali和Netease)提供了Maven Mirror的地址,因此我们从国内站点下载了来自国内站点的下载,速度将更快得多
配置方法是在Maven的设置中配置以下内容。xml文件:
settings.xml文件位置可以在上面的屏幕截图设置>构建,执行,部署>构建工具> maven
本地仓库>在配置文件中配置的镜子仓库>默认的Apache Central Warehouse
添加到POM的依赖项将默认情况下到本地仓库以查找它。如果找到它,您将引用Jar。
Maven项目依赖于“最短路径优先”原则:这意味着将使用该项目中间路的版本。
例如,a,b,c之间的依赖关系为a-> b-> c-> d(2.0),a,e依赖关系是a-> e-> d(1.0)。由于A-E-D路径较短,因此会使用A
POM的依赖项已传输。简而
我们经常使用此功能将通用依赖项放在父项目或单独的共同项目中,然后通过引入该项目以促进管理来介绍依赖关系的统一引入。
SO称为聚合项目意味着公共POM依赖性取决于一个单独的项目。其他项目可以通过引入这个单独的项目来实现依赖的统一管理。这个单独的项目称为“聚合”项目。
例如,项目A,B和C需要引入MySQL,Mybatis,Spring Web依赖性。现在,我们创建一个常见的项目,在此项目中添加mysql,mybatis,spring web。
此优势是统一的管理和易于调整。
让我们在POM文件中介绍常见标签:
依赖项标签用于声明我们需要介绍的Jar软件包,
如果您不知道依赖关系地址,我们可以从Maven依赖关系查询中检查我们需要依靠本网站的依赖项,因为它是外部网络,有时它不稳定。您可以在想法中下载maven搜索插件-in
当我们介绍一个项目,项目并包含多个依赖项时,但是当我们不需要的其中一个依赖项时,我们可以通过排除标签将其排除在外,如下
如果项目B引用项目A,则项目A的一部分取决于项目B。然后您需要在项目A中添加此部分A。如果要在项目B中使用这些依赖项,则需要显示这些依赖项的声明
用于声明POM中的版本声明为属性,然后调用属性以实现统一版本管理
例如:
用于声明何时依赖声明:
该标签用于统一的依赖性管理。随后的项目中不需要取决于它的版本。
通常与属性标签结合
当依赖项声明依赖项时,无需再声明版本号
根据依赖性,您可以定义范围标签中的依赖范围,以定义依赖性何时生效
例如,我们想介绍mybatis-plus的jar包,然后它依赖的类型是jar
但是您可以看到上述情况中引入的类型是POM。这是什么介绍?因为我们说POM通常用于家长项目和汇总项目
实际上,我们只需要单击此依赖项即可知道
这是一个聚合项目,可帮助我们定义Springboot项目的相关版本编号。这样,我们不需要手动实施这些依赖版本。这是非常亲密的吗?
通常,构建是配置的,不需要您自己编写。如果您需要单独配置,在大多数情况下,您可以在网上找到固定的写作方式。但是我们仍然必须掌握构建中常见标签的含义
在构建标签下主要包括以下种子标签:
如何查看插头的目标?我们可以在Idea的Maven插件中查看它,如图所示
软件包完成项目编译,单元测试和包装功能。但是,可执行的JAR软件包(/WAR包)不能很好地部署到本地Maven仓库,并且远程Maven私人服务器仓库安装将部署到Maven Local Warehouse,但是它不会部署到Maven远程专用服务器仓库
SpringCloud:如何在微服务项目中提供POM优雅的依赖管理
原始:https://juejin.cn/post/7097221123040870407