温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spring解决jar包依赖bom的示例分析

发布时间:2021-07-28 13:47:40 来源:亿速云 阅读:156 作者:小新 栏目:编程语言

这篇文章将为大家详细讲解有关Spring解决jar包依赖bom的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

名词解释:

BOM(bill of materials):材料清单,用于解决jar包依赖的好方法。

Spring IO Platform

缘起:Spring起初只专注ioc和aop,现在已发展成一个庞大体系。比如security、mvc等。如此一来,不同模块或者与外部进行集成时,依赖处理就需要各自对应版本号。比如,较新spring与较老的quartz,它们集成就会遇到问题,给搭建和升级带来不便。因此Spring IO Platform应运而生,只要项目中引入了它,外部集成时依赖关系无需版本号。官网的原文如下:“when you do declare a dependency on something that's part of the Platform, you will now be able to omit the version number.”
举例如下:

<code class="hljs xml has-numbering" ><span class="hljs-tag" ><<span class="hljs-title" >dependencies</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >dependency</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >groupId</span>></span>org.springframework<span class="hljs-tag" ></<span class="hljs-title" >groupId</span>></span> <span class="hljs-tag" ></<span class="hljs-title" >dependency</span>></span> <span class="hljs-tag" ></<span class="hljs-title" >dependencies</span>></span></code><ul class="pre-numbering" ><li >1</li><li >2</li><li >3</li><li >4</li><li >5</li></ul>

Spring IO Platform只是一个pom文件,记录了spring与其他开源项目对应的版本。省去了版本号,也就省去了处理依赖时的问题,因为Spring IO Platform中有最优的版本配置。

Spring相关的BOM

当然SpringSource为了解决这些Jar冲突,推出了各种BOM,当然最著名的就是spring platform io bom,其中最核心的三个是:spring-framework-bom、spring-boot-dependencies、platform-bom。

对于Spring工程来说,直接在pom.xml文件中添加如下配置代码,即可免去管理版本冲突的难题。

<code class="hljs xml has-numbering" ><span class="hljs-tag" ><<span class="hljs-title" >dependencyManagement</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >dependencies</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >dependency</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >groupId</span>></span>org.springframework<span class="hljs-tag" ></<span class="hljs-title" >groupId</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >artifactId</span>></span>spring-framework-bom<span class="hljs-tag" ></<span class="hljs-title" >artifactId</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >version</span>></span>4.2.0.RELEASE<span class="hljs-tag" ></<span class="hljs-title" >version</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >type</span>></span>pom<span class="hljs-tag" ></<span class="hljs-title" >type</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >scope</span>></span>import<span class="hljs-tag" ></<span class="hljs-title" >scope</span>></span> <span class="hljs-tag" ></<span class="hljs-title" >dependency</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >dependency</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >groupId</span>></span>org.springframework.boot<span class="hljs-tag" ></<span class="hljs-title" >groupId</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >artifactId</span>></span>spring-boot-dependencies<span class="hljs-tag" ></<span class="hljs-title" >artifactId</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >version</span>></span>1.3.0.M2<span class="hljs-tag" ></<span class="hljs-title" >version</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >type</span>></span>pom<span class="hljs-tag" ></<span class="hljs-title" >type</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >scope</span>></span>import<span class="hljs-tag" ></<span class="hljs-title" >scope</span>></span> <span class="hljs-tag" ></<span class="hljs-title" >dependency</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >dependency</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >groupId</span>></span>io.spring.platform<span class="hljs-tag" ></<span class="hljs-title" >groupId</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >artifactId</span>></span>platform-bom<span class="hljs-tag" ></<span class="hljs-title" >artifactId</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >version</span>></span>1.1.3.RELEASE<span class="hljs-tag" ></<span class="hljs-title" >version</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >type</span>></span>pom<span class="hljs-tag" ></<span class="hljs-title" >type</span>></span> <span class="hljs-tag" ><<span class="hljs-title" >scope</span>></span>import<span class="hljs-tag" ></<span class="hljs-title" >scope</span>></span> <span class="hljs-tag" ></<span class="hljs-title" >dependency</span>></span> <span class="hljs-tag" ></<span class="hljs-title" >dependencies</span>></span> <span class="hljs-tag" ></<span class="hljs-title" >dependencyManagement</span>></span></code><ul class="pre-numbering" ><li >1</li><li >2</li><li >3</li><li >4</li><li >5</li><li >6</li><li >7</li><li >8</li><li >9</li><li >10</li><li >11</li><li >12</li><li >13</li><li >14</li><li >15</li><li >16</li><li >17</li><li >18</li><li >19</li><li >20</li><li >21</li><li >22</li><li >23</li><li >24</li><li >25</li></ul>

关于“Spring解决jar包依赖bom的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI