这篇文章将为大家详细讲解有关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的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。