10 強制約束依賴的版本號

1 強制約束版本號

  • 項目結(jié)構(gòu)如下,所有項目都依賴mall-common


    項目結(jié)構(gòu)
  • mall-common中依賴

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.58</version>
</dependency>
  • mall-order中依賴
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.1.58</version>
</dependency>
  • mall-order依賴結(jié)構(gòu)如下
mall-order ->
    mall-common ->
        fastjson-1.2.58

mall-order ->
    fastjson-1.1.58
  • 此時就近原則生效,mall-order.jar中只存在fastjson-1.1.58,XXX Not Found問題

2 如何強制約束版本號

  • 針對mall-common,開發(fā)一個pom包(mall-common-bom),該pom包專門用dependencyManagement來約束依賴方的各個版本號
  • 依賴方(mall-order)不直接依賴mall-common,而是依賴于mall-common-bom,此時mall-order在dependency聲明fastjson依賴時,在對fastjson自定義依賴版本時,pom就會報錯

3 項目使用

mall-common
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.58</version>
</dependency>
---------------------------------------------------------------------------------------------------------
mall-common-bom
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.mall.common</groupId>
            <artifactId>mall-common</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>
        </dependency>
    </dependencies>
</dependencyManagement>

---------------------------------------------------------------------------------------------------------
mall-order
<dependencyManagement>
   <dependencies>
       <dependency>
           <groupId>com.mall.common</groupId>
           <artifactId>mall-common-bom</artifactId>
           <version>1.0.0</version>
           <type>pom</type>
           <scope>import</scope>
       </dependency>
   </dependencies>
</dependencyManagement>

<!-- 此時如果聲明fastjson的依賴版本號,pom文件報錯-->
 <dependencies>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.1.58</version>
    </dependency>
</dependencies>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 阿里巴巴 JAVA 開發(fā)手冊 1 / 32 Java 開發(fā)手冊 版本號 制定團隊 更新日期 備 注 1.0.0 阿...
    糖寶_閱讀 7,880評論 0 5
  • 一、編程規(guī)約 (一)命名規(guī)約 【強制】 代碼中的命名均不能以下劃線或美元符號開始,也不能以下劃線或美元符號結(jié)束。反...
    喝咖啡的螞蟻閱讀 1,602評論 0 2
  • 直奔主題,課外知識自行腦補。 1、傳遞依賴和繼承依賴 繼承依賴是個啥?就是你定義了一個父模塊,然后子模塊的pom里...
    HighTao_eb74閱讀 2,030評論 0 1
  • 追逐夢想,便踏上了“吾將上下而求索”的漫漫征程。 何為“夢想”?“太陽落到樹林的下面”所謂“夢”,正用心...
    平行關(guān)系閱讀 210評論 0 2
  • 什么是商業(yè)模式? 如今人們喜歡談商業(yè)模式,尤其是互聯(lián)網(wǎng)行業(yè)里面。你有很好的線上流量,你通過出租廣告位賺錢,這就是商...
    treemonster閱讀 248評論 0 0

友情鏈接更多精彩內(nèi)容