wordpress+镜像下载,长沙seo智优营家,万能应用商店下载安装,不良广告✅作者简介#xff1a;大家好#xff0c;我是Leo#xff0c;热爱Java后端开发者#xff0c;一个想要与大家共同进步的男人#x1f609;#x1f609; #x1f34e;个人主页#xff1a;Leo的博客 #x1f49e;当前专栏#xff1a; 工具教程 ✨特色专栏#xff1a; MyS…
✅作者简介大家好我是Leo热爱Java后端开发者一个想要与大家共同进步的男人 个人主页Leo的博客 当前专栏 工具教程 ✨特色专栏 MySQL学习 本文内容项目中使用之Maven BOM 个人知识库 知识库欢迎大家访问
1.什么是BOM
在 Maven 中BOM 是“Bill Of Materials”物料清单的缩写。它是 Maven 项目管理中使用的一种特殊类型的 POMProject Object Model文件通常用来提供一组有共同版本管理的依赖列表。
BOM全称是Bill Of Materials译作材料清单。BOM本身并不是一种特殊的文件格式而是一个普通的POM文件只是在这个POM中我们罗列的是一个工程的所有依赖和其对应的版本。该文件一般被其它工程使用当其它工程引用BOM中罗列的jar包时不用显示指定具体的版本会自动使用BOM对应的jar版本。
所以BOM的好处是用来管理一个工程的所有依赖版本信息。
2.BOM的简单格式
modelVersion4.0.0/modelVersiongroupIdorg.javatop/groupIdartifactIdBOMtest/artifactIdversion0.0.1-SNAPSHOT/versionpackagingpom/packagingnameBOMtest/namedescriptionparent pom/descriptiondependencyManagementdependenciesdependencygroupIdtest/groupIdartifactIda/artifactIdversion1.2/version/dependencydependencygroupIdtest/groupIdartifactIdb/artifactIdversion1.0/versionscopecompile/scope/dependencydependencygroupIdtest/groupIdartifactIdc/artifactIdversion1.0/versionscopecompile/scope/dependency/dependencies/dependencyManagement其中定义的关键信息是
packagingpom/packaging打包方式是pom文件dependencyManagementdependencies下定义的各种依赖的版本
3.BOM的好处
减少了版本冲突的风险特别是当你使用许多相互依赖的库时。简化了项目依赖的升级过程只需在 BOM 文件中更新依赖版本所有引用该 BOM 的项目都会使用新版本。在企业环境中BOM 可以提供一个企业级标准的依赖版本集合。
4.BOM的目的
集中依赖版本管理在多模块项目中或者在需要共享相同依赖集的不同项目之间BOM 允许统一管理依赖的版本这样你可以确保所有项目或子模块使用的都是相同版本的依赖库。简化依赖定义项目可以通过引用 BOM 来避免在每个项目的 POM 文件中重复定义依赖版本减少重复并使依赖管理变得更加清晰。
5.如何使用BOM
当你想在你的项目中使用 BOM 时你可以在项目的 POM 文件里像下面这样声明它
project xmlnshttp://maven.apache.org/POM/4.0.0modelVersion4.0.0/modelVersion!-- ... other settings ... --dependencyManagementdependenciesdependencygroupIdcom.mycompany/groupIdartifactIdmy-bom/artifactIdversion1.0.0/versionscopeimport/scopetypepom/type/dependency/dependencies/dependencyManagement
/project5.1 通过dependencyManagement
parent只能指定一个BOM。如果我还想引入一个或多个BOM这个时候就可以使用dependencyManagement配置。也即dependencyManagement 不光可以用来定义BOM本身的依赖清单也可以用作BOM的引入。因为dependencyManagement本身是做依赖管理的Jar是一种依赖BOM当然也是一种依赖 5.2 使用
那么如何在其他模块中使用呢非常简单因为我们父依赖中引入了并管理了依赖版本。
我们子模块可以直接引用依赖即可就不需要再引入版本了。 5.3 怎么查看依赖的BOM的具体清单
由于BOM不是一个jar包所以你没办法在idea的依赖libary中看看到该文件 6.版本冲突的一些规则
当出现版本冲突时具体使用哪一个版本的优先顺序是
直接在当前工程中显示指定的版本parent中配置的父工程使用的版本在当前工程中通过dependencyManagement引入的BOM清单中的版本当引入的多个BOM都有对应jar包时先引入的BOM生效上述三个地方都没配置则启用依赖调解dependency mediation
7.总结
以上便是本文的全部内容本人才疏学浅文章有什么错误的地方欢迎大佬们批评指正我是Leo一个在互联网行业的小白立志成为更好的自己。
如果你想了解更多关于Leo可以关注公众号-程序员Leo后面文章会首先同步至公众号。