溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Spring解決jar包依賴bom的示例分析

發(fā)布時間:2021-07-28 13:47:40 來源:億速云 閱讀:175 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)Spring解決jar包依賴bom的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

名詞解釋:

BOM(bill of materials):材料清單,用于解決jar包依賴的好方法。

Spring IO Platform

緣起:Spring起初只專注ioc和aop,現(xiàn)在已發(fā)展成一個龐大體系。比如security、mvc等。如此一來,不同模塊或者與外部進行集成時,依賴處理就需要各自對應(yīng)版本號。比如,較新spring與較老的quartz,它們集成就會遇到問題,給搭建和升級帶來不便。因此Spring IO Platform應(yīng)運而生,只要項目中引入了它,外部集成時依賴關(guān)系無需版本號。官網(wǎng)的原文如下:“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與其他開源項目對應(yīng)的版本。省去了版本號,也就省去了處理依賴時的問題,因為Spring IO Platform中有最優(yōu)的版本配置。

Spring相關(guān)的BOM

當(dāng)然SpringSource為了解決這些Jar沖突,推出了各種BOM,當(dāng)然最著名的就是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>

關(guān)于“Spring解決jar包依賴bom的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI