Maven中dependencies與dependencyManagement的區(qū)別

1. dependencyManagement

Maven使用dependencyManagement元素來(lái)提供了一種管理依賴版本號(hào)的方式。通常會(huì)在一個(gè)組織或者項(xiàng)目的最頂層的父POM中看到dependencyManagement元素

好處:統(tǒng)一管理項(xiàng)目的版本號(hào),確保應(yīng)用的各個(gè)項(xiàng)目的依賴和版本一致,才能保證測(cè)試的和發(fā)布的是相同的成果。因此,在頂層POM中定義共同的依賴關(guān)系。同時(shí)可以避免在每一個(gè)使用的子項(xiàng)目中都聲明一個(gè)版本號(hào),這樣想升級(jí)或者切換到另一個(gè)版本時(shí),只需要在父類容器里更新,不需要任何一個(gè)子項(xiàng)目的修改;如果某個(gè)子項(xiàng)目需要另一個(gè)版本號(hào)時(shí),只需要在dependencies中聲明一個(gè)版本號(hào)即可。子類就會(huì)使用子類聲明的版本號(hào),不繼承于父類版本號(hào)。

2. dependencies

相對(duì)于dependencyManagement,所有生命在dependencies里的毅力啊都會(huì)自動(dòng)引入,并默認(rèn)被所有的子項(xiàng)目繼承。

3. 區(qū)別

  • dependencies
    即使在子項(xiàng)目中不寫(xiě)該依賴項(xiàng),子項(xiàng)目仍然會(huì)從父項(xiàng)目中繼承該依賴項(xiàng)(全部繼承)

  • dependencyManagement
    只是聲明依賴,并不實(shí)際導(dǎo)入,因此子項(xiàng)目需要顯示的聲明需要用的依賴。如果不再子項(xiàng)目中聲明依賴,是不會(huì)從父項(xiàng)目中繼承下來(lái)的;只有在子項(xiàng)目中寫(xiě)了該依賴項(xiàng),并且沒(méi)有指定具體版本,才會(huì)從父項(xiàng)目中繼承該項(xiàng),并且version和scope都讀取自父POM;另外如果子項(xiàng)目中指定了版本號(hào),那么會(huì)使用子項(xiàng)目中指定的版本。

例子:

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <!--MyBatis分頁(yè)插件starter-->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>${pagehelper-starter.version}</version>
            </dependency>
            <!--MyBatis分頁(yè)插件-->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper</artifactId>
                <version>${pagehelper.version}</version>
            </dependency>
    </dependencyManagement>

參考文檔:
http://www.itdecent.cn/p/afba8648a531

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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