溫馨提示×

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

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

Maven的繼承與聚合實(shí)例分析

發(fā)布時(shí)間:2022-07-08 09:26:23 來(lái)源:億速云 閱讀:110 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹“Maven的繼承與聚合實(shí)例分析”,在日常操作中,相信很多人在Maven的繼承與聚合實(shí)例分析問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Maven的繼承與聚合實(shí)例分析”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

一、繼承

我們已經(jīng)完成了使用聚合工程去管理項(xiàng)目,聚合工程進(jìn)行某一個(gè)構(gòu)建操作,其他被其管理的項(xiàng)目也會(huì) 執(zhí)行相同的構(gòu)建操作。那么接下來(lái),我們?cè)賮?lái)分析下,多模塊開(kāi)發(fā)存在的另外一個(gè)問(wèn)題,重復(fù)配置的問(wèn)題,我們先來(lái)看張圖:

Maven的繼承與聚合實(shí)例分析

■ spring-webmvc、spring-jdbc在三個(gè)項(xiàng)目模塊中都有出現(xiàn),這樣就出現(xiàn)了重復(fù)的內(nèi)容

■ spring-test只在ssm_crm和ssm_goods中出現(xiàn),而在ssm_order中沒(méi)有,這里是部分重復(fù)的內(nèi)容

■ 我們使用的spring版本目前是5.2.10.RELEASE ,假如后期要想升級(jí)spring版本,所有跟Spring相關(guān)jar包都得被修改,涉及到的項(xiàng)目越多,維護(hù)成本越高

繼承概念

繼承描述的是兩個(gè)工程間的關(guān)系,與java中的繼承相似,子工程可以繼承父工程中的配置信息,常用于依賴關(guān)系的繼承

作用

  • 簡(jiǎn)化配置

  • 減少版本沖突

二、繼承關(guān)系實(shí)施步驟

1、創(chuàng)建Maven模塊,設(shè)置打包類型為pom

<packageing>pom<packageing>

注意事項(xiàng):建議父工程打包方式設(shè)置為pom

2、在父工程的pom文件中配置依賴關(guān)系(子工程將沿用父工程中的依賴關(guān)系)

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>
        ...
</dependencies>

3、在配置子工程中可選的依賴關(guān)系

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.16</version>
            </dependency>
            ...
        </dependencies>
</dependencyManagement>

4、在子工程中配置當(dāng)前工程所繼承的父工程

<!--配置該工程的父工程-->
  <parent>
    <groupId>com.itheima</groupId>
    <artifactId>maven_01_parent</artifactId>
    <version>1.0-RELEASE</version>
    <!--填寫(xiě)父工程的pom文件-->
    <relativePath>../maven_01_parent/pom.xml</relativePath>
</parent>

5、在子工程中配置使用父工程中可選依賴的坐標(biāo)

<dependencies>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
        </dependency>
</dependencies>

注意事項(xiàng):

子工程中使用父工程中的可選依賴時(shí),僅需要提供群組id和項(xiàng)目id,無(wú)需提供版本,版本由父工程統(tǒng)一提供,避免版本沖突,子工程中還可以定義父工程中沒(méi)有定義的依賴關(guān)系。

三、聚合與繼承的區(qū)別

作用

聚合用于快速構(gòu)建項(xiàng)目

繼承用于快速配置

相同點(diǎn)

聚合與繼承的pom.xml文件打包方式為pom,可以將兩種關(guān)系制作到同一個(gè)pom文件中

聚合與繼承均屬于設(shè)計(jì)型模塊,并無(wú)實(shí)際的模塊內(nèi)容

不同點(diǎn)

聚合是在當(dāng)前模塊中配置關(guān)系,聚合可以感知到參與聚合的模塊有哪些

繼承是在子模塊中配置關(guān)系,父模塊無(wú)法感知哪些子模塊繼承了自己

到此,關(guān)于“Maven的繼承與聚合實(shí)例分析”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

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

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

AI